Ausgangspunkt: Du überträgst Daten von deiner API an den Client. Dabei werden Daten übertragen, die der Client nicht benötigt oder – aus anderen Gründen – nicht an ihn übergeben werden sollen. Dafür gibt es zwei Ansätze:

DataContract

Markiere eine Klasse mit dem DataContractAttribute. Nun werden nur Attribute serialisiert, welche durch das Attribut DataMemberAttribute markiert wurden.

[DataContract]
public class User
{
    [DataMember]
    public string UserName { get; set; }

    public string Password { get; set; }
}

In diesem Fall wird nur die Eigenschaft UserName serialisiert und an an den Client übertragen. Password wird dabei ignoriert.

IgnoreDataMember

Die zweite Variante besteht in der Verwendung des Attributs IgnoreDataMemberAttribute. Hier wird die Klasse nicht mit DataContract markiert und alle Attribute serialisiert, ausser, wenn sie mit dem IgnoreDataMemberAttribute ausgenommen werden.

public class User
{
    public string UserName { get; set; }

    [IgnoreDataMember]
    public string Password { get; set; }
}

Sobald eine Klasse mit DataContract markiert ist, wird das IgnoreDataMemberAttribute ignoriert.

Über den Autor

Norbert Eder

Ich bin ein leidenschaftlicher Softwareentwickler und Fotograf. Mein Wissen und meine Gedanken teile ich nicht nur hier im Blog, sondern auch in Fachartikeln und Büchern.