Format Sabit listesi
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
ve SqlUserDefinedAggregateAttribute tarafından SqlUserDefinedTypeAttribute kullanıcı tanımlı bir türün (UDT) veya toplamanın serileştirme biçimini göstermek için kullanılır.
public enum class Format
public enum Format
type Format =
Public Enum Format
- Devralma
-
Format
Alanlar
Native | 1 | Bu serileştirme biçimi, SQL Server diskte UDT'nin verimli bir gösterimini depolamasını sağlayan çok basit bir algoritma kullanır. Serileştirme için |
Unknown | 0 | Serileştirme biçimi bilinmiyor. |
UserDefined | 2 | Bu serileştirme biçimi, geliştiriciye ve Read(BinaryReader) yöntemleri aracılığıyla Write(BinaryWriter) ikili biçim üzerinde tam denetim sağlar. |
Örnekler
Aşağıdaki örnek, Nokta UDT'sinin özniteliğini gösterir UserDefinedType
. UDT bayt sıralı, "Nokta" olarak adlandırılır, "ValidatePoint" adlı bir doğrulama yöntemine sahiptir ve yerel serileştirme biçimini kullanır.
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
{
Açıklamalar
Bu numaralandırma, kullanıcı tanımlı bir türün (UDT) veya toplamanın serileştirme biçimini belirtmek için ve SqlUserDefinedAggregateAttribute tarafından SqlUserDefinedTypeAttribute kullanılır. Native
ve UserDefined
numaralandırma üyelerinin kullanımı özel gereksinimlere sahiptir.
Format.Native
BiçiminFormat.Native
gereksinimleri şunlardır:StructLayoutAttribute özelliği değerine LayoutKind.Sequential sahip Value değeri, bir yapıda değil, bir sınıfta tanımlanmışsa toplamaya veya UDT'ye uygulanmalıdır. Bu, veri alanlarının fiziksel düzenini denetler ve üyeleri göründükleri sırayla sıralı olarak yerleştirilmeye zorlamak için kullanılır. SQL Server, birden çok alanı olan UDF'ler için alan sırasını belirlemek için bu özniteliği kullanır.
Tür en az bir üye içermelidir (seri hale getirilmiş değerler boyut olarak sıfır bayt olamaz).
Toplamanın tüm alanları kesilebilir olmalıdır; yani, hem yönetilen hem de yönetilmeyen bellekte ortak bir temsile sahip olmaları ve birlikte çalışma sıralayıcısı tarafından özel işleme gerektirmemeleri gerekir.
UDT'nin tüm alanları, seri hale getirilebilen şu türlerden birinde olmalıdır: , , , ,
short
,ushort
, ,int
,ulong
float
double
uint
long
, SqlByte, SqlInt16, SqlDoubleSqlDateTimeSqlMoneySqlSingleSqlInt64SqlInt32veya kullanıcı tarafından tanımlanan ve bu türlerden birine sahip alanlar içeren diğer değer türleri.sbyte
byte
bool
Toplama için bir değer
MaxByteSize
belirtmemelidir.Toplamada [Seri Durumda Olmayan] alan olmamalıdır.
Alanlar açık bir düzen (ile) StructLayoutAttribute.ValueLayoutKind.Explicitolarak işaretlenmemelidir.
Format.UserDefined
BiçiminFormat.UserDefined
gereksinimleri şunlardır:Toplama, için
MaxByteSize
bir değer belirtmelidir.SqlUserDefinedTypeAttribute.IsByteOrdered öznitelik özelliğini belirtin.
false
varsayılan değerdir.veya IBinarySerialize.Write yöntemlerindeki IBinarySerialize.Read herhangi bir alanı atlarsanız, bu alanın durumu serileştirilmez.