inutan
inutan

Reputation: 10888

WCF - DataMember as DataContract

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

Answers (1)

Xorandor
Xorandor

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

Related Questions