DataMemberAttribute.EmitDefaultValue Property

Microsoft Silverlight will reach end of support after October 2021. Learn more.

Gets or sets a value that specifies whether to serialize the default value for a field or property being serialized.

Namespace:  System.Runtime.Serialization
Assembly:  System.Runtime.Serialization (in System.Runtime.Serialization.dll)

Syntax

'Declaration
Public Property EmitDefaultValue As Boolean
public bool EmitDefaultValue { get; set; }

Property Value

Type: System.Boolean
true if the default value for a member should be generated in the serialization stream; otherwise, false. The default is true.

Remarks

In .NET Framework, types have a concept of default values. For example, for any reference type the default value is nulla null reference (Nothing in Visual Basic) (Nothing in Visual Basic), and for an integer type it is 0. It is occasionally desirable to omit a data member from the serialized data when it is set to its default value. To do this, set the EmitDefaultValue property to false (it is true by default).

NoteNote:

Setting the EmitDefaultValue property to false is not a recommended practice. It should be done only if there is a specific requirement to do so (such as for interoperability or to reduce data size).

Examples

        ' Define the data contract.
        <DataContract(Name := "Customer", Namespace := "https://www.contoso.com")> _
        Public Class User
            Private privateName As String
            <DataMember(Name := "Last", EmitDefaultValue := True, IsRequired := True, Order := 2)> _
            Public Property Name() As String
                Get
                    Return privateName
                End Get
                Set(ByVal value As String)
                    privateName = value
                End Set
            End Property

            Private privateAge As Integer
            <DataMember(Order := 1)> _
            Public Property Age() As Integer
                Get
                    Return privateAge
                End Get
                Set(ByVal value As Integer)
                    privateAge = value
                End Set
            End Property

            Public Sub New()
            End Sub

            Public Sub New(ByVal newName As String, ByVal newAge As Integer)
                    Name = newName
                    Age = newAge
            End Sub
        End Class
        // Define the data contract.
        [DataContract(Name = "Customer" , Namespace = "https://www.contoso.com" ) ]
        public class User
        {
            [DataMember(Name = "Last" , EmitDefaultValue = true , IsRequired = true , Order = 2 )]
            public string Name { get; set; }

            [DataMember(Order = 1)]
            public int Age { get; set; }

            public User() { }

            public User(string newName, int newAge)
            {
                    Name = newName;
                    Age = newAge;
            }
        }

Version Information

Silverlight

Supported in: 5, 4, 3

Silverlight for Windows Phone

Supported in: Windows Phone OS 7.1, Windows Phone OS 7.0

XNA Framework

Supported in: Windows Phone OS 7.0

Platforms

For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.