无偿使用System.Runtime.Serialization属性?

时间:2010-03-23 23:26:00

标签: wpf wcf silverlight serialization

是否有任何成本/缺点(除了输入太多)以装饰具有System.Runtime.Serialization属性(如[DataContract])的类,以便它可以在本地用作桌面客户端的直接引用将作为WCF服务的类型?这里的目标是编写一个可以在富客户端(WPF)和Web场景中使用的数据层类。我的数据类将位于与Client WCF(*.svc代码隐藏)代码分开的项目中。这是重用代码的有效尝试吗?

2 个答案:

答案 0 :(得分:1)

装饰类,属性或方法不会产生任何成本 - 除了写入属性所花费的时间。该属性将被编译到该类型的元数据中,然后由另一个组件用于实现其他功能。

答案 1 :(得分:1)

我能看到的唯一缺点是在程序集中包含属性的成本。除非使用它们,否则它们对性能影响很小。

我会说没有,但它确实使.DLL更大并且确实在程序集中扩展了RTTI,特别是如果你在读取块边界上推动一个类,可能会减慢组装负载(导致一些额外的要读取的块,否则就不会被读取。然而,这些差异通常仅在冷启动测试中才会显着。