代码之家  ›  专栏  ›  技术社区  ›  rasx

免费使用system.runtime.serialization属性?

  •  1
  • rasx  · 技术社区  · 15 年前

    用什么东西装饰一个班级(除了打字太多以外)有什么费用/缺点吗? System.Runtime.Serialization 属性(如 [DataContract] )这样它就可以在本地用作对桌面客户机项目的直接引用。 作为WCF服务的类型?这里的目标是编写一个可以在富客户机(WPF)和Web场景中使用的数据层类。我的数据类将位于与客户机分离的项目中 WCF *.svc 代码隐藏)代码。这是重用代码的有效尝试吗?

    2 回复  |  直到 15 年前
        1
  •  1
  •   AxelEckenberger    15 年前

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

        2
  •  1
  •   chuckj    15 年前

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

    我会说没有,但它确实会使.dll变大,并且确实会将程序集中的rtti分散一点,特别是如果您将类推过读取块边界,这可能会降低程序集加载速度(导致读取一些额外的块,否则就不会读取)。然而,这些差异通常只在冷启动测试中才明显。