DataMemberAttribute.EmitDefaultValue Eigenschaft

Definition

Ruft einen Wert ab, der angibt, ob der Standardwert eines Felds oder einer Eigenschaft serialisiert werden soll, oder legt einen Wert fest.Gets or sets a value that specifies whether to serialize the default value for a field or property being serialized.

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

Boolean

true, wenn der Standardwert für einen Member im Serialisierungsstream generiert werden sollte, andernfalls false.true if the default value for a member should be generated in the serialization stream; otherwise, false. Der Standardwert ist true.The default is true.

Beispiele

Im folgenden Beispiel wird dargestellt, wie die EmitDefaultValue-Eigenschaft in verschiedenen Feldern auf false festgelegt ist.The following example shows the EmitDefaultValue property set to false on various fields.

[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

Im .NET Framework verfügen Typen über ein Konzept von Standardwerten.In the .NET Framework, types have a concept of default values. Beispielsweise ist der Standardwert für jeden Verweistyp null , und für einen ganzzahligen Typ ist der Wert 0.For example, for any reference type the default value is null, and for an integer type it is 0. Von Zeit zu Zeit ist es empfehlenswert, einen Datenmember aus den serialisierten Daten auszulassen, wenn er auf seinen Standardwert festgelegt ist.It is occasionally desirable to omit a data member from the serialized data when it is set to its default value. Legen Sie hierzu die EmitDefaultValue-Eigenschaft auf false fest (die Standardeinstellung ist true).To do this, set the EmitDefaultValue property to false (it is true by default).

Hinweis

Die EmitDefaultValue-Eigenschaft auf false festzulegen, ist keine empfohlene Vorgehensweise.Setting the EmitDefaultValue property to false is not a recommended practice. Dies sollte nur erfolgen, wenn eine spezielle Anforderung hierfür besteht (wie Interoperabilität oder eine Verringerung der Datengröße).It should only be done if there is a specific need to do so (such as for interoperability or to reduce data size).

Gilt für: