Udostępnij za pośrednictwem


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

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

Przykłady

W poniższym przykładzie przedstawiono 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 wynosi 0. Czasami pożądane jest pominięcie elementu członkowskiego danych z serializacji danych po ustawieniu jej wartości domyślnej. W tym celu ustaw EmitDefaultValue właściwość na false (domyślnie true ).

Uwaga

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

Dotyczy