我有一个基本的WCF服务 . 我已经拆分了我的数据 Contract ,其中一个是具有大量公共属性的类 . 如果我想让客户端可以使用这些属性,我假设所有这些都需要[DataMember] . 因此,由于存在大量这些属性,是否有任何方法可以使用[DataMember]批量装饰它们?就像是:
[DataMember]
(
public string Title { get; set; }
public Guid ID { get; set; }
public Description { get; set; }
//more properties...
)
我只见过:
[DataMember]
public string Title { get; set; }
[DataMember]
public Guid ID { get; set; }
[DataMember]
public Description { get; set; }
2 回答
不,遗憾的是,无法使用该属性标记属性组 .
是 . 您可以使用面向方面编程技术 . 使用PostSharp时,这是解决方案 . PostSharp可以通过nuget安装(postsharp express是免费的) .
你需要先写一个方面 . 请参阅下面的代码 .
现在创建一个Not a datamember属性 .
使用[NotADataMember]装饰那些您不想成为DataMembers的属性 .
在AssemblyInfo.cs文件中添加以下行 . 将YourNameSpaces替换为适合您的项目 .
而已 .
使用此方法,您不必使用DataMember属性装饰每个成员 . 此外,您不必使用DataContract来装饰每个类 .