DataMemberAttribute.EmitDefaultValue Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ruft einen Wert ab, der angibt, ob der Standardwert eines Felds oder einer Eigenschaft serialisiert werden soll, oder legt einen Wert fest.
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
true
, wenn der Standardwert für einen Member im Serialisierungsstream generiert werden sollte, andernfalls false
. Der Standardwert ist true
.
Beispiele
Im folgenden Beispiel wird dargestellt, wie die EmitDefaultValue-Eigenschaft in verschiedenen Feldern auf false
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
Im .NET Framework verfügen Typen über ein Konzept von Standardwerten. Für jeden Verweistyp ist null
der Standardwert beispielsweise , und für einen ganzzahligen Typ ist er 0. Von Zeit zu Zeit ist es empfehlenswert, einen Datenmember aus den serialisierten Daten auszulassen, wenn er auf seinen Standardwert festgelegt ist. Legen Sie hierzu die EmitDefaultValue-Eigenschaft auf false
fest (die Standardeinstellung ist true
).
Hinweis
Die EmitDefaultValue-Eigenschaft auf false
festzulegen, ist keine empfohlene Vorgehensweise. Dies sollte nur erfolgen, wenn eine spezielle Anforderung hierfür besteht (wie Interoperabilität oder eine Verringerung der Datengröße).