【发布时间】:2010-12-08 10:59:05
【问题描述】:
我有一个 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; }
}
这似乎在服务端工作正常,但是当我编译然后从客户端更新服务引用时,该类没有新属性,即当它序列化它并在客户端重新创建它时,它是错过了新的财产。有谁知道这是为什么?
TIA
编辑: 好吧,这正式把我逼疯了。我唯一能看到的是它使用的是 CollectionDataContract 属性而不是 DataContract。这是否以某种方式不允许类中的数据成员被序列化?为什么会这样?它在服务端工作正常 - 我可以看到并填充值没问题。但是,当我在客户端上更新服务引用时,什么都没有,只有没有数据成员的 colelction 类。
【问题讨论】:
-
将
[DataContract]属性放在新属性上然后重新生成代理会发生什么情况? -
嗨 slugster - 我尝试了与第一类相同的属性,但出现错误:重复 'WcfSerialization::CollectionDataContract' 属性 C:\xxx\CAEService.DataContracts\SecurityItemCollection.cs
-
我还尝试将普通的 [DataContract] 属性分配给已编译的第二个类,但在发布服务时出现错误:Type 'CAEService.DataContracts.SecurityItemCollection' with CollectionDataContractAttribute 属性是无效集合类型,因为它具有 DataContractAttribute 属性
标签: wcf partial-classes datacontracts