MFC詳解

beifengwang發表於2013-10-17
契約有幾種?,都有什麼用途

WCF中,契約分為四種,分別為:

用於定義服務操作的服務契約:ServicContract

這種級別的契約又包括兩種:ServiceContract和OperationContract

ServiceContract用於類或者結構上,用於指示WCF此類或者結構能夠被遠端呼叫,而OperationContract用於類中的方法(Method上,用於指示WCF該方法可被遠端呼叫。

用於自定義資料結構的資料契約:DataContract

資料契約也分為兩種:DataContract和DataMember.DataContract用於類或者結構上,指示 WCF此類或者結構能夠被序列化並傳輸,而DataMemb只能用在類或者結構的屬性(Properti或者欄位(Field上,指示WCF該屬性或者欄位能夠被序列化傳輸。

用於自定錯誤異常的異常契約:FaultContract

FaultContract用於自定義錯誤異常的處置方式,預設情況下,當服務端丟擲異常的時候,客戶端能接收到異常資訊的描述,但這些描述往往格式統一,有時比較難以從中獲取有用的資訊,此時,可以自定義異常訊息的格式,將我關心的訊息放到錯誤訊息中傳送給客戶端,此時需要在方法上新增自定義一個錯誤訊息的類,然後在要處理異常的函式上加上FaultContract並將異常資訊指示返回為自定義格式。

用於控制訊息格式的訊息契約:MessagContract

簡單的說,能自定義訊息格式,包括訊息頭,訊息體,還能指示是否對訊息內容進行加密和簽名。

SUMMA RY:契約的使用是很簡單的無非就是普通的順序結構上新增一些宣告性的屬性就可以了比方我可以直接在類上宣告ServerContractA ttribut此時這個類就能被遠端客戶端訪問到而在類中的方法中(Method新增OperationContractA ttribut就能將方法流露給遠端客戶端,其他契約也一樣的用法,比較難的還是訊息契約和錯誤契約。

契約是獨立於平臺的麼?

   WCF作為一種能夠跨平臺的體系框架,其應用肯定會有異構,異網的情況發生,那麼作為通訊依據的契約能否自動適用於上述情況呢?答案是肯定的契約是獨立於平臺之外的只約束通訊的雙方應該遵守什麼樣的規則,而絲毫不管雙方各自採用的什麼樣的技術和什麼樣的作業系統,也只有這樣,WCF才幹有真正的生命力。

WCF平安性方面做了哪些改進?

為了保證資料通訊的平安,WCF提供了三種保護措施:1機密性(Confidenti2完整性(Integriti3可驗證性(Authent這三種措施聯合起來被稱為CIA 並且這些措施在WCF中是預設支援的機密效能保證傳輸的資料是經過加密的不被非法監聽(eavesdrop而完整性利用數字簽名技術防止資料在傳輸過程中被注入(inject或篡改(tamper而驗證(Authent可以採用靈活的戰略來處理達到客戶端請求,比如使用者名稱密碼驗證,客戶端證書驗證等。
文章來源

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29212814/viewspace-774514/,如需轉載,請註明出處,否則將追究法律責任。

相關文章