是否有任何成本/缺点(除了输入太多)以装饰具有System.Runtime.Serialization
属性(如[DataContract]
)的类,以便它可以在本地用作桌面客户端的直接引用将或作为WCF服务的类型?这里的目标是编写一个可以在富客户端(WPF)和Web场景中使用的数据层类。我的数据类将位于与Client 和 WCF(*.svc
代码隐藏)代码分开的项目中。这是重用代码的有效尝试吗?
答案 0 :(得分:1)
装饰类,属性或方法不会产生任何成本 - 除了写入属性所花费的时间。该属性将被编译到该类型的元数据中,然后由另一个组件用于实现其他功能。
答案 1 :(得分:1)
我能看到的唯一缺点是在程序集中包含属性的成本。除非使用它们,否则它们对性能影响很小。
我会说没有,但它确实使.DLL更大并且确实在程序集中扩展了RTTI,特别是如果你在读取块边界上推动一个类,可能会减慢组装负载(导致一些额外的要读取的块,否则就不会被读取。然而,这些差异通常仅在冷启动测试中才会显着。