Bagikan melalui


DataMemberAttribute.EmitDefaultValue Properti

Definisi

Mendapatkan atau menetapkan nilai yang menentukan apakah akan membuat serialisasi nilai default untuk bidang atau properti yang sedang diserialisasikan.

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

Nilai Properti

true jika nilai default untuk anggota harus dihasilkan dalam aliran serialisasi; jika tidak, false. Default adalah true.

Contoh

Contoh berikut menunjukkan properti yang EmitDefaultValue diatur ke false di berbagai bidang.

[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

Keterangan

Dalam .NET Framework, jenis memiliki konsep nilai default. Misalnya, untuk jenis referensi apa pun, nilai defaultnya adalah null, dan untuk jenis bilangan bulat adalah 0. Terkadang diinginkan untuk menghilangkan anggota data dari data berseri ketika diatur ke nilai defaultnya. Untuk melakukan ini, atur properti ke EmitDefaultValuefalse (secara true default).

Catatan

Mengatur properti ke EmitDefaultValuefalse bukan praktik yang disarankan. Ini hanya boleh dilakukan jika ada kebutuhan khusus untuk melakukannya (seperti untuk interoperabilitas atau untuk mengurangi ukuran data).

Berlaku untuk