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 pro pole nebo serializovat vlastnost.
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
true
Pokud výchozí hodnota pro člen by měla být generována v serializační stream; v opačném případě . false
Výchozí formát je true
.
Příklady
Následující příklad ukazuje vlastnost nastavenou EmitDefaultValue na u false
různých polí.
[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 null
výchozí hodnota a pro celočíselný typ je to 0. Občas je žádoucí vynechat datový člen serializovaných dat, pokud je nastavena na jeho výchozí hodnotu. Chcete-li to provést, nastavte EmitDefaultValue vlastnost na false
(ve výchozím nastavení je true
).
Poznámka
EmitDefaultValue Nastavení vlastnosti na false
není doporučený postup. Mělo by to být provedeno pouze v případě, že je to konkrétní potřeba (například kvůli interoperabilitě nebo zmenšení velikosti dat).