(2) 第二章 WCF服务与数据契约 服务契约详解(三)- [ServiceContract]特性
本章節主要目的:了解[ServiceContract]特性
如前幾章的進度,相信已經可以自己編寫服務契約以及如何在客戶端調用配置好的服務了。
本片主要講解一下SerivceContract中的幾個重要特性。
1.先看一下SerivceContract特性的成員列表
參數???????????????????? 說明
CallbackContract???????? 當契約是雙工時,讀取或設置回調契約的類型
ConfigurationName??????? 獲取或設置服務在應用程序配置文件中的名稱
HasProtectionLevel?????? 讀取一個值,表示此成員是否有一個保護級別
Name???????????????????? 獲取或設置WSDL文檔中<portType>元素的名稱
Namespace??????????????? 獲取或設置WSDL文檔中<portType>元素的名稱空間
ProtectionLevel????????? 設置對契約的綁定是否支持ProtectionLevel屬性的值
SessionMode????????????? 獲取或設置會話是否允許,以及是否得到了請求
好了,ServiceContract特性是指定附加上的類或接口做為服務的契約。顯示的使接口定義為CLR接口,并且使它能夠執行WCF的操作,且每一個[ServiceContract]屬性都會映射到等價的WDL portType聲明中。
CallbackContract????????
此參數用于獲取或設置當前契約在雙工模式通信時回調的契約。它包涵了回調契約的類型。示例代碼:
?
namespace CallbackContractDemo {[ServiceContract(CallbackContract = typeof(IDemoCallbackContract))]public interface IDemo{[OperationContract]int Add(int a, int b);}public interface IDemoCallbackContract{int GetResult(int c);} }?
大家可以看到CallbackContract = typeof(IDemoCallbackContract),那IDemoCallbackContract的內容由調用的客戶端去實現。
?
ConfigurationName
ConfigurationName用于獲取或設置配置文件中的元素名稱。示例代碼:
?
[ServiceContract(ConfigurationName="Service")] public interface IDemo {[OperationContract]int Add(int a, int b); }下面是配置文件的內容
<configuration><system.servicemodel><services><service name="Demo"></service></services></system.servicemodel> </configuration>?
HasProtectionLevel
這個就不多說了,就讀取一個值,表示此成員是否有一個保護級別。
??Name
? Name參數是用來設置或獲得在WSDL中<portType>元素的名稱。
? 當然也可以用于不想將函數名稱以實名暴露在外面。
? Namespace
? Namespace參數用來設置或獲取WSDL中<portType>元素的命名空間。默認為http://tempuri.org
??使用命名空間可以防止接口或類的命名沖突。當然也可以用于不想將函數名稱以實名暴露在外面。
?
??? ProtectionLevel
??? 設定保護綁定的要求,每個端點的加密以及數字簽名等。
??? ProtectionLevel的參數的值來自System.Net.SecurityLevel.ProtectionLevel枚舉,也可以用下面的值:
????EncryptAndSign:簽名和加密來保證傳輸數據的機密性和完成性。
??? None:只驗證。
??? Sign:簽名能夠保證傳輸數據的完整性,不進行加密。
???
??? SessionMode
??? 此屬性指定會話的類型。
??? 也是一個枚舉SessionMode。
??? Allowed:如果進入的連接支持可靠會話,則契約支持可靠會話。
??? NotAllowed:指定的契約不支持可靠的會話。
??? Required:指定需要可靠會話的契約。
????要考慮的可靠會話的情況:
- 希望提供HTTP會話
?
- 在端點之間有間斷連接
?
- 存在代理媒介或傳輸橋
?
- 在端點之間有SOAP媒介
?
???
由于時間問題 待續中....見諒
轉載于:https://www.cnblogs.com/wujiang/archive/2012/01/06/2314978.html
總結
以上是生活随笔為你收集整理的(2) 第二章 WCF服务与数据契约 服务契约详解(三)- [ServiceContract]特性的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 行货好还是水货好?详解苹果iPhone5
- 下一篇: 转:ArcGIS提取面状道路中心线(转载