Freigeben über


DataMemberAttribute.EmitDefaultValue Eigenschaft

Definition

Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob der Standardwert für ein Feld oder eine Eigenschaft serialisiert werden soll.

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

Eigenschaftswert

truewenn der Standardwert für ein Element im Serialisierungsstream generiert werden soll; andernfalls . false Der Standardwert lautet true.

Beispiele

Das folgende Beispiel zeigt die Eigenschaft, die EmitDefaultValuefalse für verschiedene Felder festgelegt ist.

[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

Hinweise

In .NET Framework weisen Typen ein Konzept von Standardwerten auf. For example, for any reference type the default value is null, and for an integer type it is 0. Es ist gelegentlich wünschenswert, ein Datenelement aus den serialisierten Daten auszulassen, wenn es auf seinen Standardwert festgelegt ist. Legen Sie dazu die EmitDefaultValue Eigenschaft auf false (standardmäßig festgelegt true ).

Hinweis

Das Festlegen der EmitDefaultValue Eigenschaft auf false diese Eigenschaft ist keine empfohlene Methode. Dies sollte nur erfolgen, wenn eine bestimmte Notwendigkeit besteht (z. B. für die Interoperabilität oder zum Verringern der Datengröße).

Gilt für: