代码:
public interface IServices
{
[OperationContract]
[XmlSerializerFormat]
GetProductsResponse Getproducts(GetProductsRequest productsrequest);
[OperationContract]
SaveProductsResponse SaveProducts1(SaveProductsRequest1 productsrequest);
}
[DataContract]
public class SaveProductsRequest1
{
[DataMember]
public List<Person> Persons;
}
[DataContract]
public class Person
{
[DataMember]
public int Id;
}
客户 :
ServicesClient client = new ServicesClient();
SaveProductsRequest1 req = new SaveProductsRequest1();
req.Persons = new List<Person> { new Person { Id = 10 } }.ToArray();
client.SaveProducts1(req);
我正在SaveProducts1
从客户端调用调用,但无法在我的服务端获取值“10”(似乎是反序列化问题)。但是当我[XmlSerializerFormat]
从调用中删除属性时Getproducts
,它工作正常,我能够看到值 10。
为什么会发生(为什么 SaveProducts1 依赖于 Getproducts OperationContract)?当我想同时使用 xml 和 datacontract 序列化时,我应该提供什么解决方法?任何帮助表示赞赏。
注意:我有非常更新的代理。我在代理中没有看到任何问题。即使我尝试了一个样本并遇到了同样的问题