1.wcf契約分為:服務契約,操作契約,訊息契約、資料契約
-------------------服務契約:
配置元資料交換
//系統內建的資料元資料交換掉的協議;
-------------------操作契約:
引數重新命名:
void setname([messageparameter(name="")]string name);
返回值重新命名
[return:messageparameter(name="")]
標記單工通訊
[operationcontract(isoneway = true)]//預設為false;
-------------------資料契約:
-新增引用:using system.runtime.serialization;
資料成員:
--資料契約序列化器案例:
person p = new person();
p.name = "郭澤峰";
datacontractserializer ds = new datacontractserializer(typeof(person));
filestream fs = new filestream("cc.xml", filemode.create);
ds.writeobject(fs, p);
fs.close();
[datamember(name="name_name",isrequired=false,order=0)]//isrequired:約束是否必須,order:序列化時的順序;
為標記的不進行序列化;
1.wcf為了實現soa思想丟失了物件導向的許多特性,比如多型,為了繼續使用多型,新增了knowtype(已知型別),在服務中暴露基本型別。標記為派生類並參與序列化;標記後就可以進行黎克特制替換了;否則轉換會剖出異常;
2.在介面上標記已知型別:[serviceknowtype(typeof())],這樣介面裡的所有方法宣告都可以進行黎克特制替換;
3.只針對介面中某些特定方法定義的話,加到特定方法宣告上就可以了;
-------------------訊息契約:為了可以自定義soap格式;header和body;
[messageheader(protectionlevel=protectionlevel.encryptandsign)]
[messagebodymember]
wcf資料契約
專案中需要使用繼承關係,乙個函式返回特定的子類,在序列化的時候需要告訴序列化器,在父類檔案中使用kowntype注釋即可。namespace healthadminwebservice.logic datamember public string exercisestep datamember pu...
wcf訊息契約
1.最多乙個引數和乙個返回值,返回值和引數的型別都是訊息型別。下面的 為定義乙個訊息契約的例項 messagecontract public class mymessage constructor create a message and populate its members.public my...
WCF服務契約 ServiceContract
服務契約servicecontract特性能夠把介面或者類公開為面向服務的契約,允許開發者使用c 語言進行程式設計把類似於介面這樣的語法結構公開為wcf契約和服務。指示介面或類在應用程式中定義服務協定。摘要 指示介面或類在 應用程式中定義服務協定。attributeusage attributeta...