DataMemberAttribute.EmitDefaultValue Properti
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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).