代码:
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序列化时,我应该提供哪些解决方法?任何帮助表示赞赏。
注意:我有非常新的代理。我没有在代理中看到任何问题。即使我尝试了一个样本并得到同样的问题
答案 0 :(得分:0)
添加XmlSerializerFormat
属性后,您是否刷新了客户服务参考?可能是合同不再匹配。