DataMemberAttribute.EmitDefaultValue Vlastnost
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Získá nebo nastaví hodnotu, která určuje, zda serializovat výchozí hodnotu pole nebo vlastnosti serializace.
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
Hodnota vlastnosti
truepokud by měla být ve streamu serializace vygenerována výchozí hodnota člena; v opačném případě . false Výchozí hodnota je true.
Příklady
Následující příklad ukazuje vlastnost nastavenou EmitDefaultValue na false různá pole.
[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
Poznámky
V rozhraní .NET Framework mají typy koncept výchozích hodnot. Například pro každý typ odkazu je výchozí hodnota nulla pro celočíselné typ je 0. Občas je žádoucí vynechat datový člen ze serializovaných dat, když je nastavena na výchozí hodnotu. Chcete-li to provést, nastavte EmitDefaultValue vlastnost na false (ve výchozím nastavení).true
Poznámka:
EmitDefaultValue Nastavení vlastnosti false není doporučeným postupem. Mělo by se to provést pouze v případě, že je potřeba to udělat konkrétní (například pro interoperabilitu nebo zmenšení velikosti dat).