DataContract属性层次结构如何工作?

问题描述

|
[DataContract]
public class Credentials
{
    [DataMember]
    public string UserName {get;set;}
    public string Password {get;set;}
}

[DataContract]
public class User
{
    [DataMember]
    public Credentials Credentials {get;set;} 
}
在上述情况下,由于Credentials用DataMember属性装饰,是否有必要用DataContract装饰Credentials类,并用DataMember属性装饰它的成员?     

解决方法

        是的,您应该使用适当的DataContract / DataMember属性标记层次结构中使用的所有类。 请注意,在您的凭据类中,您还需要向[密码]属性添加[DataMember]。