Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Dalam beberapa aplikasi, berguna untuk mengetahui urutan data dari berbagai anggota data dikirim atau diharapkan diterima (seperti urutan data muncul dalam XML serial). Terkadang mungkin perlu untuk mengubah urutan ini. Topik ini menjelaskan aturan pemesanan.
Aturan Dasar
Aturan dasar untuk pemesanan data meliputi:
Jika jenis kontrak data adalah bagian dari hierarki pewarisan, anggota data dari jenis dasarnya selalu terlebih dahulu dalam urutan.
Selanjutnya secara berurutan adalah anggota data jenis saat ini yang tidak memiliki Order properti set DataMemberAttribute atribut, dalam urutan alfabet.
Selanjutnya adalah anggota data apa pun yang memiliki properti Order dari atribut DataMemberAttribute yang ditetapkan. Ini diurutkan berdasarkan nilai
Orderproperti terlebih dahulu dan kemudian menurut abjad jika ada lebih dari satu anggota dari nilai tertentuOrder. Nilai pesanan mungkin bisa dilewati.
Urutan alfabet dibuat dengan memanggil CompareOrdinal metode .
Contoh
Pertimbangkan kode berikut.
[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
XML yang dihasilkan mirip dengan yang berikut ini.
<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>