DataMemberAttribute.Order Property

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

Gets or sets the order of serialization and deserialization of a member.

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

Syntax

'Declaration
Public Property Order As Integer
public int Order { get; set; }

Property Value

Type: System.Int32
The numeric order of serialization or deserialization.

Remarks

If a type requires that one member be serialized or deserialized before another, use this property to specify an order other than the order in which data is received in the serialized XML. The basic rules for ordering data members are:

  • If a data contract type is a part of an inheritance hierarchy, data members of its base types are always first in the order.

  • Next in order are the current type’s data members that do not have the Order property of the DataMemberAttribute attribute set, in alphabetical order.

  • Next are any data members that have the Order property of the DataMemberAttribute attribute set. These are ordered by the value of the Order property first and then alphabetically if there is more than one member of a certain Order value. Order values may be skipped. Alphabetical order is established by calling the CompareOrdinal method.

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.