如何从WebRequest将集合序列化为WCF

时间:2015-02-05 17:03:50

标签: c# xml wcf webrequest

我们有一家合作伙伴公司,它通过webRequest(C#)函数向我们发布XML。

XML结构是固定的,我无法改变XML的外观。

以下是我发生的事情和我正在做的代码的示例。 XML是Fiddler中XML的一个例子。

<Sales>
   <Customer>
        <Name>John</Name>
   </Customer>
   <Goods>
      <Good>
         <id>5445</id>
      </Good>
      <Good>
         <id>6767</id>
      </Good>
   </Goods>
</Sales>

我的WCF功能是

public Sales(clsCustomer Customer, clsGoods Good);

我的界面是

[OperationContract]
[WebInvoke(UriTemplate = "SendRequest", BodyStyle = WebMessageBodyStyle.Wrapped, Method = "POST", ResponseFormat = WebMessageFormat.Xml)]
public Sales(clsCustomer Customer, clsGoods Goods)

我的课程

[DataContract(NameSpace="http://example.com/Int")]
public class Customer {
    [DataMember(Name="Name",Order=1)]
    public string Name { get; set; }
}

[DataContract(NameSpace="http://example.com/Int")]
public class clsGoods {
    public List<clsGood> Good { get; set; }
}

[DataContract(NameSpace="http://example.com/Int")]
public class clsGood {
    public string id {get; set;}
}

当我使用WebRequest发布我的服务时,客户字段会被填充,但Goods集合始终为空。

1 个答案:

答案 0 :(得分:0)

你需要装饰(public List Good {get; set;})作为你的数据成员

像这样:

[DataMember]
public List<clsGood> Good { get; set; }