当我试图将一组数据发送到我们的服务时,我得到了一个错误。但是,如果我只向集合中添加了一个项目,那么它就会产生罚款。一旦我添加了多个项,我就会得到以下错误
-- NetDataContractSerializer不支持使用'SmartTrade.Shared.Common.PaymentTerm‘类型作为只获取集合。考虑用CollectionDataContractAttribute属性或SerializableAttribute属性标记类型,或者向属性添加一个setter。
所以这里要注意的关键是,我可以用一个项目发送集合(IList<>)。我已经把MaxReceivedMessageSize和MaxArrayLength提高到了我认为更合理的程度。
有人能帮我一下吗
发布于 2012-03-20 18:33:42
我终于想出办法了。其中一个基类中有一个属性只有一个getter属性,并且没有setter属性。所以我不得不添加一个setter属性
发布于 2015-06-18 13:52:27
添加无意义的setter的另一种方法是标记要被序列化忽略的属性。
这可以通过用System.Runtime.Serialization.IgnoreDataMemberAttribute装饰您的属性来完成。
示例:
public class Whatever
{
[IgnoreDataMember] // this won't be serialized now
public List<string> Things
{
get { return _things; }
}
}https://stackoverflow.com/questions/9780766
复制相似问题