W niektórych aplikacjach warto wiedzieć, w jakiej kolejności dane z różnych elementów członkowskich danych są wysyłane lub oczekuje się, że zostaną odebrane (na przykład kolejność wyświetlania danych w serializowanym kodzie XML). Czasami może być konieczne zmianę tej kolejności. W tym temacie opisano reguły porządkowania.
Podstawowe reguły
Podstawowe reguły porządkowania danych obejmują:
Jeśli typ kontraktu danych jest częścią hierarchii dziedziczenia, składowe danych ich typów podstawowych są zawsze w kolejności.
Kolejność to składowe danych bieżącego typu, które nie mają Order właściwości zestawu atrybutów DataMemberAttribute w kolejności alfabetycznej.
Następnie znajdują się wszystkie elementy członkowskie danych, które mają Order właściwość zestawu atrybutów DataMemberAttribute . Są one uporządkowane według wartości Order właściwości najpierw, a następnie alfabetycznie, jeśli istnieje więcej niż jeden element członkowski określonej Order wartości. Wartości zamówień można pominąć.
Kolejność alfabetyczna jest ustanawiana przez wywołanie CompareOrdinal metody .
<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
Wygenerowany kod XML jest podobny do poniższego.
XML
<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>
Dołącz do serii meetup, aby tworzyć skalowalne rozwiązania sztucznej inteligencji oparte na rzeczywistych przypadkach użycia z innymi deweloperami i ekspertami.