wcf學習日記 2014 7 1

2021-06-22 14:25:44 字數 1017 閱讀 9502

wcf的所有的服務都會公開契約,即描述服務功能的基本方式

wcf的契約有4種

:服務契約——描述客戶端能夠執行的服務操作

:資料契約——描述與服務互動的資料型別(int,string隱式定義了契約)

:錯誤契約——描述服務出錯如何處理

:訊息契約——允許服務可以直接和訊息互動

定義和實現服務契約:

[servicecontract]//

將乙個clr介面對映成乙個與技術無關的服務契約

inte***ce imycontract

注意:1:servicecontract

與型別限定無關,型別限定屬於clr,所以即使定義為私有的,契約任會公開。以便跨邊界呼叫。只用介面和類可以標記為servicecontract。即使給類或者介面應用了servicecontract,並不代表這個類裡面的所有方法都是契約,所以需要operationcontract標記

2:服務類的約束:避免使用帶參建構函式,因為wcf只能使用預設的建構函式,客戶端是無法訪問類內部的屬性、索引、內部成員的。

3:雖然說servicecontract可以直接應用到類上,但是我們因為避免這個行為,讓他應用在介面上方便不能場景下使用契約。

可以為契約定義命名空間:

[servicecontract(namespace= "mynamespace")],意義與.net的命名空間一樣,為了名稱避免衝突。契約的預設命名空間為

,預設情況下契約公開的名字就是介面的名字,但是也可以通過name

屬性修改名稱

託管:wcf的每個服務都必須託管在windows的程序中,這個程序我們把他叫做宿主程序,wcf沒有要求宿主程序又是客戶端程序。

宿主可以由iis提供,可以由windows啟用服務提供,甚至可以作為應用程式的一部分

iis託管:使用iis託管服務的優勢是客戶端在第一次訪問時,自動啟動服務,同時可以借助iis管理該服務的生命週期。缺點是只能使用http協議。

自託管:開發者自己提供和管理宿主的生命週期,這樣的話就要在客戶端呼叫宿主之前啟動宿主

Wcf 開發日記 1

序 這篇日記是記錄我在開發 wcf中所遇到的問題,以及解決的方法。這個專案並不是乙個從零開發的專案,某種程度上可以被看作是從 2層架構到 3層的遷移。其中遇到了很多問題,包括技術的和非技術的。這些都將會被我一一記錄。這些經驗和技術實踐可以被用作 soa專案的參考。專案的總覽 wcf和 wpf都是 m...

WCF 學習總結2 配置WCF

btw 元資料端點 通過ws metadataexchange幫我們實現了對服務的描述,提供了wsdl,啟動host之後我們可以通過 http localhost 8732 design time addresses wcfservicelib service1 wsdl 檢視到公開的服務描述。關於...

WCF學習資料

wcf專題 http kb.cnblogs.com zt wcf 1.化零為整wcf系列文章索引 2.我的wcf之旅 博文系列彙總 4.老徐的部落格 文章目錄 5.wcf從理論到實踐系列文章索引 7.wcf後傳 terrylee 對映,想把wcf概念對映到現實生活中的概念,因為兩者有共性。有共性意味...