DataMemberAttribute.EmitDefaultValue Właściwość
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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).