Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In einigen Anwendungen ist es hilfreich, die Reihenfolge zu kennen, in der Daten aus den verschiedenen Datenmbern gesendet oder erwartet werden, dass sie empfangen werden (z. B. die Reihenfolge, in der Daten im serialisierten XML angezeigt werden). Manchmal kann es notwendig sein, diese Reihenfolge zu ändern. In diesem Thema werden die Sortierregeln erläutert.
Grundregeln
Zu den grundlegenden Regeln für die Datenbestellung gehören:
Wenn ein Datenvertragstyp Teil einer Vererbungshierarchie ist, sind Datenmember seiner Basistypen immer zuerst in der Reihenfolge.
Danach folgen die Datenmember des aktuellen Typs, für die die Order-Eigenschaft des Attributs DataMemberAttribute nicht festgelegt ist, in alphabetischer Reihenfolge.
Dann folgen die Datenmember mit der Order-Eigenschaft der DataMemberAttributeAttributgruppe. Diese werden zuerst nach dem Wert der
Order
Eigenschaft sortiert, und dann alphabetisch, wenn mehr als ein Element eines bestimmtenOrder
Werts vorhanden ist. Die Reihenfolgenwerte können übersprungen werden.
Die alphabetische Reihenfolge wird durch Aufrufen der CompareOrdinal Methode festgelegt.
Beispiele
Beachten Sie den folgenden Code.
[DataContract]
public class BaseType
{
[DataMember]
public string zebra;
}
[DataContract]
public class DerivedType : BaseType
{
[DataMember(Order = 0)]
public string bird;
[DataMember(Order = 1)]
public string parrot;
[DataMember]
public string dog;
[DataMember(Order = 3)]
public string antelope;
[DataMember]
public string cat;
[DataMember(Order = 1)]
public string albatross;
}
<DataContract()> _
Public Class BaseType
<DataMember()> Public zebra As String
End Class
<DataContract()> _
Public Class DerivedType
Inherits BaseType
<DataMember(Order:=0)> Public bird As String
<DataMember(Order:=1)> Public parrot As String
<DataMember()> Public dog As String
<DataMember(Order:=3)> Public antelope As String
<DataMember()> Public cat As String
<DataMember(Order:=1)> Public albatross As String
End Class
Der erzeugte XML-Code ähnelt der folgenden.
<DerivedType>
<!-- Zebra is a base data member, and appears first. -->
<zebra/>
<!-- Cat has no Order, appears alphabetically first. -->
<cat/>
<!-- Dog has no Order, appears alphabetically last. -->
<dog/>
<!-- Bird is the member with the smallest Order value -->
<bird/>
<!-- Albatross has the next Order value, alphabetically first. -->
<albatross/>
<!-- Parrot, with the next Order value, alphabetically last. -->
<parrot/>
<!-- Antelope is the member with the highest Order value. Note that
Order=2 is skipped -->
<antelope/>
</DerivedType>