【问题标题】:Is the [DataMember] attribute needed on virtual properties?虚拟属性是否需要 [DataMember] 属性?
【发布时间】:2015-09-20 09:37:44
【问题描述】:

虚拟属性是否需要 [DataMember] 属性?

[DataMember]
public string Title { get; set; }

[DataMember]
public virtual ApplicationUser User { get; set; }

或者这是正确的方法:

[DataMember]
public string Title { get; set; }

public virtual ApplicationUser User { get; set; }

【问题讨论】:

  • 所以只有当我需要访问 wcf 客户端上的虚拟属性时才需要它?
  • 与是否虚拟无关。问题是:您是否希望User 被序列化?是的,如果你想在客户端访问它。
  • 谢谢。这就是我需要知道的。如果你愿意,你可以创建一个答案,这样我就可以接受它作为我的解决方案。

标签: wcf entity-framework-4


【解决方案1】:

这与属性是否为虚拟无关。如果您希望某个属性被序列化(即对 WCF 客户端可见),请将其标记为 DataMember

请记住,如果您这样做,ApplicationUser 也应该是 DataContract,否则您会收到类似的异常

无法序列化类型“ApplicationUser”。考虑使用 DataContractAttribute 属性对其进行标记,并使用 DataMemberAttribute 属性标记您想要序列化的所有成员。 ...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-10-18
    • 1970-01-01
    • 2011-08-20
    • 1970-01-01
    • 1970-01-01
    • 2016-10-17
    相关资源
    最近更新 更多