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

时间:2015-07-02 18:07:54

标签: wcf entity-framework-4

虚拟属性需要[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; }

1 个答案:

答案 0 :(得分:2)

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

请注意,如果您这样做,ApplicationUser也应该是DataContract,否则会出现例外

  

键入' ApplicationUser'无法序列化。请考虑使用DataContractAttribute属性对其进行标记,并使用DataMemberAttribute属性标记要序列化的所有成员。 ...