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 una 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 EmitDefaultValue proprietà impostata false su 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 è nulle per un tipo integer è 0. Occasionalmente è consigliabile omettere un membro dati dai dati serializzati quando è impostato sul valore predefinito. A tale scopo, impostare la EmitDefaultValue proprietà su false (per true impostazione predefinita).
Annotazioni
L'impostazione della EmitDefaultValue proprietà su false non è una procedura consigliata. Questa operazione deve essere eseguita solo se è necessario eseguire questa operazione, ad esempio per l'interoperabilità o per ridurre le dimensioni dei dati.