Bagikan melalui


Format Enum

Definisi

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

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 Native serialisasi hanya dapat memiliki jenis nilai (struktur di Microsoft Visual C# dan struktur di Microsoft Visual Basic .NET) sebagai anggota. Anggota jenis referensi (seperti kelas di Visual C# dan Visual Basic), baik yang ditentukan pengguna atau yang ada di pustaka kelas .NET (seperti String), tidak didukung.

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.Native Persyaratan untuk format tersebut Format.Native adalah:

    • 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.UserDefined Persyaratan untuk format tersebut Format.UserDefined adalah:

Berlaku untuk