Reputation: 10888
I have a [DataContract] class Template declared as follows:
[DataContract]
public abstract class Template
{
[DataMember]
public virtual int? Id { get; set; }
[DataMember]
public virtual byte[] TemplateDoc { get; set; }
[DataMember]
public virtual string Title { get; set; }
[DataMember]
public virtual TemplateStatusInfo TemplateStatus { get; set; }
}
[DataContract]
public class TemplateStatusInfo
{
[DataMember]
public virtual List<string> ValidCodes { get; set; }
[DataMember]
public virtual List<string> InvalidCodes { get; set; }
[DataMember]
public virtual string TemplateError { get; set; }
}
As you can see Template has a [DataMember] child object 'TemplateStatusInfo'.
I just want to make sure if it is valid in WCF to declare child object with both attributes- [DataMember] as well as [DataContract].
I am not getting any compile time error.
Please guide.
Upvotes: 1
Views: 1132
Reputation: 462
It is correct what you have done. DataContract is applied to types, and DataMember to properties to specify if it should be included.
Upvotes: 3