DataMemberAttribute.EmitDefaultValue Propriété
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Obtient ou définit une valeur qui spécifie s’il faut sérialiser la valeur par défaut d’un champ ou d’une propriété sérialisée.
public:
property bool EmitDefaultValue { bool get(); void set(bool value); };
public bool EmitDefaultValue { get; set; }
member this.EmitDefaultValue : bool with get, set
Public Property EmitDefaultValue As Boolean
Valeur de propriété
true si la valeur par défaut d’un membre doit être générée dans le flux de sérialisation ; sinon, false. La valeur par défaut est true.
Exemples
L’exemple suivant montre la EmitDefaultValue propriété définie false sur différents champs.
[DataContract]
public class Employee
{
// The CLR default for as string is a null value.
// This will be written as <employeeName xsi:nill="true" />
[DataMember]
public string EmployeeName = null;
// This will be written as <employeeID>0</employeeID>
[DataMember]
public int employeeID = 0;
// The next three will not be written because the EmitDefaultValue = false.
[DataMember(EmitDefaultValue = false)]
public string position = null;
[DataMember(EmitDefaultValue = false)]
public int salary = 0;
[DataMember(EmitDefaultValue = false)]
public int? bonus = null;
// This will be written as <targetSalary>57800</targetSalary>
[DataMember(EmitDefaultValue = false)]
public int targetSalary = 57800;
}
<DataContract()> _
Public Class Employee
' The CLR default for as string is a null value.
' This will be written as <employeeName xsi:nil="true" />
<DataMember()> _
Public employeeName As String = Nothing
' This will be written as <employeeID>0</employeeID>
<DataMember()> _
Public employeeID As Integer = 0
' The next two will not be written because the EmitDefaultValue = false.
<DataMember(EmitDefaultValue := False)> Public position As String = Nothing
<DataMember(EmitDefaultValue := False)> Public salary As Integer = 0
' This will be written as <targetSalary>555</targetSalary> because
' the 555 does not match the .NET default of 0.
<DataMember(EmitDefaultValue := False)> Public targetSalary As Integer = 555
End Class
Remarques
Dans .NET Framework, les types ont un concept de valeurs par défaut. Par exemple, pour tout type de référence, la valeur par défaut est null, et pour un type entier, il s’agit de 0. Il est parfois souhaitable d’omettre un membre de données des données sérialisées lorsqu’il est défini sur sa valeur par défaut. Pour ce faire, définissez la EmitDefaultValue propriété false sur (elle est true par défaut).
Note
La définition de la EmitDefaultValue propriété false n’est pas une pratique recommandée. Elle ne doit être effectuée que s’il existe un besoin spécifique (par exemple, pour l’interopérabilité ou pour réduire la taille des données).