我在方法中使用什么数据类型来获取XML字符串

时间:2016-08-30 14:04:55

标签: c# xml wcf

作为我的第一个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字符串吗?

1 个答案:

答案 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