作为我的第一个WCF项目,我感到困惑,需要澄清一下。 我想使用WCF构建一个Web服务,该服务接受SOAP协议中的XML字符串。
<ITEM_SEND xml:lang="en-US">
<T_ID>1368</T_ID>
<PART>8058</PART>
</ITEM_SEND>
所以,我认为我需要为我的界面执行以下操作:
[ServiceContract]
public interface IInvService
{
[OperationContract]
XmlDocument GetInventory(XmlDocument query);
}
然后对于我的实际方法,我相信我会做以下事情:
public XmlDocument GetInventory(XmlDocument query)
{
XmlDocument xmlDoc = new XmlDocument();
//... do stuff and return xml
return xmlDoc;
}
我是否正确使用XmlDocument类型,或者我应该使用另一种数据类型作为XML字符串吗?
答案 0 :(得分:0)
发送和返回XmlDocument有点多余。 WCF默认使用SOAP和basicHttpBinding,wsHttpBinding,netTcpBinding等都可以使用SOAP。我会让框架为你做序列化。
相反,我会创建一个DataContract或使用强类型对象。
例如,您的DataContract可能如下所示:
[DataContract]
public class ItemSend
{
private int _id;
private int _part;
[DataMember]
public int Id
{
get { return _id; }
set { _id = value; }
}
[DataMember]
public int Part
{
get { return _part; }
set { _part = value; }
}
}
您的ServiceContract可能如下所示:
[ServiceContract]
public interface IInvService
{
[OperationContract]
ItemSend GetInventory(XmlDocument query);
}
我不确定“查询”XML是什么,但也可能是数据合同。
以下是DataContracts的教程:http://wcftutorial.net/data-contract.aspx