MessageContract可以用來變更SOAP封包的長像,例如想把資料放在Soap封包Header區段。以實例說明。
- File->New Website->WCF Service->MyWCFService
- 在ISerivce.cs檔加入一個Employee Class
public class Employee
{
public string Name { get; set; }
public int Age { get; set; }
}
- 在IService中加一個Operation
[ServiceContract]
public interface IService
{
[OperationContract]
void GetEmployee(Employee emp);
//略
}
public interface IService
{
[OperationContract]
void GetEmployee(Employee emp);
//略
}
- 在Service.cs實作
- 拿掉GetEmployee其中的code
public void GetEmployee(Employee emp)
{
}
- 按F5執行
- 使用Visual Studio 2010執行wcftestclient.exe,試著呼叫GetEmployee方法
- 切到XML檢視,預設Employee的Name與Age都會放在封包Body區段
- 修改Employee類別,加上MessageContract、MessageHeader、MessageBodyMember
[MessageContract]
public class Employee
{
[MessageHeader]
public string Name { get; set; }
[MessageBodyMember]
public int Age { get; set; }
}
- 按F5執行,切到XML檢視,Employee的Name會放到Header,Age會放到Body
1 則留言:
您好:
最近碰上一個SCVMM的WCF service的問題,
我張貼在"伊莉討論區",
網址為 http://www07.eyny.com/thread-7116354-1-1.html
懇請您抽空幫我解個惑,感恩^^
張貼留言