我有一个WCF服务,其中包含一些数据合同。我正在使用Web服务软件工厂,它使用设计师创建所有消息、数据和其他合同,并将它们创建为部分类。当代码重新生成时,这些类将被重新创建。
using WcfSerialization = global::System.Runtime.Serialization;
[WcfSerialization::CollectionDataContract(Namespace = "urn:CAEService.DataContracts", ItemName = "SecurityItemCollection")]
public partial class SecurityItemCollection : System.Collections.Generic.List<SecurityItem>
{
}
数据协定是一个自定义类的通用列表,一直运行良好。但是现在我想要给这个类添加一个属性,所以我在同一个命名空间中添加了这个部分类:
public partial class SecurityItemCollection
{
public int TotalRecords { get; set; }
}
这在服务端看起来很正常,但是当我从客户端编译并更新服务引用时,该类没有新属性。也就是说,在客户端序列化和重新创建时,缺少新属性。有人知道为什么吗?
谢谢
编辑: 好了,这真的让我抓狂。我唯一能看到的是它使用的是CollectionDataContract属性而不是DataContract。这是否意味着不能序列化类中的数据成员?为什么会这样?在服务端它正常工作 - 我可以看到并填充值,没有问题。然而当我在客户端更新服务引用时,什么都没有,只有不带数据成员的集合类。
[DataContract]
属性,然后重新生成代理时会发生什么? - slugster