DataMemberAttribute.EmitDefaultValue Właściwość

Definicja

Pobiera lub ustawia wartość określającą, czy serializować wartość domyślną pola lub właściwości, która jest serializowana.

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

Wartość właściwości

Boolean

true jeśli wartość domyślna elementu członkowskiego powinna być generowana w strumieniu serializacji; w przeciwnym razie , false. Wartość domyślna to true.

Przykłady

W poniższym przykładzie pokazano właściwość ustawioną EmitDefaultValue na false wartość w różnych polach.

[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

Uwagi

W .NET Framework typy mają pojęcie wartości domyślnych. Na przykład dla dowolnego typu odwołania wartość domyślna to null, a dla typu liczby całkowitej jest to 0. Czasami pożądane jest pominięcie elementu członkowskiego danych z serializowanych danych, gdy jest ono ustawione na jego wartość domyślną. W tym celu ustaw EmitDefaultValue właściwość na false (domyślnie).true

Uwaga

EmitDefaultValue Ustawienie właściwości na false nie jest zalecaną praktyką. Należy to zrobić tylko wtedy, gdy konieczne jest wykonanie tej czynności (na przykład w przypadku współdziałania lub zmniejszenie rozmiaru danych).

Dotyczy