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概念對映到現實生活中的概念,因為兩者有共性。有共性意味...