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.