Partager via


DataMemberAttribute.EmitDefaultValue Propriété

Définition

Obtient ou définit une valeur qui spécifie s'il faut sérialiser la valeur par défaut pour une propriété ou un champ qui est sérialisé.

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 pour 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 illustre la propriété EmitDefaultValue dont la valeur de divers champs est false.

[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 le .NET Framework, les types possèdent 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, elle est 0. Il est parfois préférable d'omettre un membre de données des données sérialisées lorsqu'il est défini à sa valeur par défaut. Pour cela, affectez EmitDefaultValue à la propriété false (sa valeur par défaut est true).

Notes

L'affectation de la valeur EmitDefaultValue à la propriété false n'est pas une méthode recommandée. Cette méthode doit uniquement être utilisée en cas de besoin spécifique (pour l'interopérabilité ou pour réduire la taille des données, par exemple).

S’applique à