DataMemberAttribute.EmitDefaultValue プロパティ
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
シリアル化されるフィールドまたはプロパティのデフォルト値をシリアル化するかどうかを指定する値を取得または設定します。
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
プロパティ値
メンバーのデフォルト値をシリアル化ストリームの中で生成する必要がある場合は true
。それ以外の場合は false
。 既定値は、true
です。
例
さまざまなフィールドで EmitDefaultValue プロパティを false
に設定する例を次に示します。
[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
注釈
.NET Framework では、型に既定値の概念があります。 たとえば、任意の参照型の既定値は で null
、整数型の場合は 0 です。 しかし、データ メンバーが既定値に設定されている場合は、シリアル化されたデータからそのデータ メンバーを省略することが望ましいことがあります。 これを行うには、EmitDefaultValue プロパティを false
に設定します (既定では true
が設定されます)。
注意
EmitDefaultValue プロパティを false
に設定することは、お勧めしません。 これは、相互運用性の維持やデータ サイズの縮小のような特別なニーズがある場合以外は行わないでください。
適用対象
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET