DataMemberAttribute.EmitDefaultValue Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Ottiene o imposta un valore che specifica se serializzare il valore predefinito per un campo o proprietà da serializzare.
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
Valore della proprietà
true
se il valore predefinito per un membro deve essere generato nel flusso di serializzazione. In caso contrario, false
. Il valore predefinito è true
.
Esempio
Nell'esempio seguente viene illustrata la proprietà EmitDefaultValue impostata su false
in vari campi.
[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
Commenti
In .NET Framework i tipi hanno un concetto di valori predefiniti. Ad esempio, per qualsiasi tipo di riferimento il valore predefinito è null
, e per un tipo intero è 0. Quando un membro dati è impostato sul relativo valore predefinito, può talvolta essere opportuno ometterlo dai dati serializzati. A tal scopo, impostare la proprietà EmitDefaultValue su false
(l'impostazione predefinita è true
).
Nota
L'impostazione della proprietà EmitDefaultValue su false
non è consigliata. Deve essere effettuata solo in caso di esigenze specifiche, ad esempio ai fini dell'interoperabilità o per ridurre la dimensione dei dati.