Format Enum
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Digunakan oleh SqlUserDefinedTypeAttribute dan SqlUserDefinedAggregateAttribute untuk menunjukkan format serialisasi jenis yang ditentukan pengguna (UDT) atau agregat.
public enum class Format
public enum Format
type Format =
Public Enum Format
- Warisan
-
Format
Bidang
| Nama | Nilai | Deskripsi |
|---|---|---|
| Native | 1 | Format serialisasi ini menggunakan algoritma yang sangat sederhana yang memungkinkan SQL Server menyimpan representasi UDT yang efisien pada disk. Jenis yang ditandai untuk |
| Unknown | 0 | Format serialisasi tidak diketahui. |
| UserDefined | 2 | Format serialisasi ini memberi pengembang kontrol penuh atas format biner melalui Write(BinaryWriter) metode dan Read(BinaryReader) . |
Contoh
Contoh berikut menunjukkan UserDefinedType atribut Point UDT. UDT diurutkan byte, diberi nama "Point", memiliki metode validasi bernama "ValidatePoint", dan menggunakan format serialisasi asli.
using Microsoft.Data.SqlClient.Server;
using System.Data.SqlTypes;
using System.Text;
[Serializable]
[Microsoft.Data.SqlClient.Server.SqlUserDefinedType(Format.Native,
IsByteOrdered = true,
Name = "Point", ValidationMethodName = "ValidatePoint")]
public struct Point : INullable
{
Keterangan
Enumerasi ini digunakan oleh SqlUserDefinedTypeAttribute dan SqlUserDefinedAggregateAttribute untuk menunjukkan format serialisasi jenis yang ditentukan pengguna (UDT) atau agregat. Penggunaan anggota Native enumerasi dan UserDefined memiliki persyaratan khusus.
Format.NativePersyaratan untuk format tersebutFormat.Nativeadalah:StructLayoutAttribute dengan Value nilai LayoutKind.Sequential properti harus diterapkan ke agregat atau UDT jika ditentukan dalam kelas dan bukan struktur. Ini mengontrol tata letak fisik bidang data dan digunakan untuk memaksa anggota ditata secara berurutan dalam urutan yang muncul. SQL Server menggunakan atribut ini untuk menentukan urutan bidang untuk UDT dengan beberapa bidang.
Jenis harus berisi setidaknya satu anggota (nilai berseri tidak boleh berukuran nol byte).
Semua bidang agregat harus dapat dibakar; artinya, mereka harus memiliki representasi umum dalam memori yang dikelola dan tidak dikelola dan tidak memerlukan penanganan khusus oleh interop marshaler.
Semua bidang UDT harus dari salah satu jenis berikut yang dapat diserialisasikan:
bool, , , SqlInt16doublebyteintuintushortlongshortulongSqlInt64SqlBytefloatsbyteSqlDateTimeSqlSingleSqlInt32, SqlDouble, , SqlMoneyatau jenis nilai lain yang ditentukan oleh pengguna yang berisi bidang dari salah satu jenis ini.Agregat tidak boleh menentukan nilai untuk
MaxByteSize.Agregat tidak boleh memiliki bidang [NonSerialized].
Bidang tidak boleh ditandai sebagai tata letak eksplisit (dengan StructLayoutAttribute.Value dari LayoutKind.Explicit).
Format.UserDefinedPersyaratan untuk format tersebutFormat.UserDefinedadalah:Agregat harus menentukan nilai untuk
MaxByteSize.Tentukan SqlUserDefinedTypeAttribute.IsByteOrdered properti atribut. Nilai defaultnya adalah
false.Jika Anda menghilangkan bidang apa pun dalam IBinarySerialize.Read metode atau IBinarySerialize.Write , status bidang tersebut tidak diserialisasikan.