DataMemberAttribute.EmitDefaultValue Tulajdonság
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Lekéri vagy beállít egy értéket, amely meghatározza, hogy szerializálja-e a szerializált mező vagy tulajdonság alapértelmezett értékét.
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
Tulajdonság értéke
trueha egy tag alapértelmezett értékét a szerializálási adatfolyamban kell létrehozni; egyéb esetben. false Az alapértelmezett érték a true.
Példák
Az alábbi példa a EmitDefaultValue különböző mezőkre beállított tulajdonságot false mutatja be.
[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
Megjegyzések
A .NET-keretrendszerben a típusok az alapértelmezett értékek fogalmával rendelkeznek. Bármely referenciatípus esetében például az alapértelmezett érték null, egész szám esetén pedig 0. Időnként célszerű kihagyni egy adattagot a szerializált adatokból, ha az alapértelmezett értékre van állítva. Ehhez állítsa be a EmitDefaultValue tulajdonságot false (alapértelmezés szerint).true
Note
EmitDefaultValue A tulajdonság false beállítása nem ajánlott eljárás. Ezt csak akkor szabad megtenni, ha erre külön szükség van (például az interoperabilitásra vagy az adatméret csökkentésére).