Атрибуты DataContract и DataMember - как они влияют на тип - PullRequest
6 голосов
/ 28 ноября 2009

В чем разница между классами без атрибутов DataContract:

public class BankOperationResult
{        
    public int CurrentAmount { get; set; }
    public bool Success { get; set; }
}

и тот же класс с атрибутами DataContract:

[DataContract]
public class BankOperationResult
{        
    [DataMember]
    public int CurrentAmount { get; set; }
    [DataMember]
    public bool Success { get; set; }
}

Я имею в виду, обрабатывает ли WCF эти два типа по-разному при кодировании и т. Д .?

С этими атрибутами или без них моя служба WCF работает ...

Спасибо, Павел

1 Ответ

10 голосов
/ 28 ноября 2009

До .NET 3.5 SP1, если вы не пометили свое свойство атрибутом DataMember, оно не было представлено в WSDL и не сериализовано. Начиная с .NET 3.5 SP1 DataContractSerializer автоматически включает все открытые свойства, поэтому вам больше не нужно украшать их этим атрибутом.

...