DataMemberAttribute.EmitDefaultValue Özellik
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Seri hale getirilen bir alan veya özellik için varsayılan değerin serileştirilip serileştirilmeyeceğini belirten bir değer alır veya ayarlar.
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
Özellik Değeri
true
serileştirme akışında bir üye için varsayılan değer oluşturulmalıdır; aksi takdirde , false
. Varsayılan değer: true
.
Örnekler
Aşağıdaki örnekte, çeşitli alanlarda özelliğinin EmitDefaultValue olarak ayarlandığı false
gösterilmektedir.
[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
Açıklamalar
.NET Framework türlerde varsayılan değerler kavramı vardır. Örneğin, herhangi bir başvuru türü için varsayılan değer olur null
ve bir tamsayı türü için 0'dır. Bazen, varsayılan değerine ayarlandığında serileştirilmiş verilerden bir veri üyesinin atlanmış olması tercih edilir. Bunu yapmak için özelliğini false
olarak ayarlayın EmitDefaultValue (varsayılan olarak).true
Not
özelliğini false
olarak EmitDefaultValue ayarlamak önerilen bir uygulama değildir. Yalnızca belirli bir gereklilik söz konusuysa (birlikte çalışabilirlik veya veri boyutunu küçültme gibi) yapılmalıdır.