Format Format Format Format Enum

Определение

Используется классами SqlUserDefinedTypeAttribute и SqlUserDefinedAggregateAttribute для указания формата сериализации пользовательского типа или агрегатной функции.Used by SqlUserDefinedTypeAttribute and SqlUserDefinedAggregateAttribute to indicate the serialization format of a user-defined type (UDT) or aggregate.

public enum class Format
public enum Format
type Format = 
Public Enum Format
Наследование

Поля

Native Native Native Native 1

Формат сериализации использует простейший алгоритм, позволяющий SQL Server сохранять на диске эффективное представление пользовательского типа.This serialization format uses a very simple algorithm that enables SQL Server to store an efficient representation of the UDT on disk. Типами, отмеченными для сериализации Native, могут быть только типы значений (структуры в Microsoft Visual C# и в Microsoft Visual Basic .NET) в качестве элементов.Types marked for Native serialization can only have value types (structs in Microsoft Visual C# and structures in Microsoft Visual Basic .NET) as members. Члены в виде ссылочных типов (таких как классы Visual C# или Visual Basic), определенных пользователем или существующих в библиотеках класса .NET (например, String), не поддерживаются.Members of reference types (such as classes in Visual C# and Visual Basic), either user-defined or those existing in .NET class libraries (such as String), are not supported.

Unknown Unknown Unknown Unknown 0

Формат сериализации неизвестен.The serialization format is unknown.

UserDefined UserDefined UserDefined UserDefined 2

Формат сериализации обеспечивает разработчику полный контроль над форматом двоичных данных, осуществляемый с помощью методов Write(BinaryWriter) и Read(BinaryReader).This serialization format gives the developer full control over the binary format through the Write(BinaryWriter) and Read(BinaryReader) methods.

Примеры

В следующем примере показан UserDefinedType атрибут определяемого пользователем типа Point.The following example shows the UserDefinedType attribute of the Point UDT. Определяемый пользователем тип с именем "точка" имеет метод проверки с именем "ValidatePoint" и использует собственный формат сериализации.The UDT is byte-ordered, is named "Point", has a validation method named "ValidatePoint", and uses the native serialization format.

[Serializable]
[Microsoft.SqlServer.Server.SqlUserDefinedType(Format.Native,
     IsByteOrdered=true,  
     Name="Point",ValidationMethodName = "ValidatePoint")]
public struct Point : INullable
{
<Serializable(), SqlUserDefinedTypeAttribute(Format.Native, _
  IsByteOrdered:=True, _
  Name:="Point", _
  ValidationMethodName:="ValidatePoint")> _
  Public Structure Point
    Implements INullable

Комментарии

Это перечисление используется SqlUserDefinedTypeAttribute и SqlUserDefinedAggregateAttribute для указания формата сериализации определяемого пользователем типа (UDT) или статистического выражения.This enumeration is used by SqlUserDefinedTypeAttribute and SqlUserDefinedAggregateAttribute to indicate the serialization format of a user-defined type (UDT) or aggregate. Использование членов перечисления UserDefinedиимеет особые требования. NativeUse of the Native and UserDefined enumeration members has special requirements.

  • Format.Native

    Требования Format.Native к формату:The requirements for the Format.Native format are:

    • Свойство со значением свойстваLayoutKind.Sequential должно применяться к агрегату или определяемому пользователем типу, если оно определено в классе, а не StructLayoutAttributeвструктуре Value .The StructLayoutAttribute with a Value property value of LayoutKind.Sequential must be applied to the aggregate or UDT if it is defined in a class and not a structure. Это управляет физическим размещением полей данных и используется для принудительного размещения элементов в порядке их появления.This controls the physical layout of the data fields and is used to force the members to be laid out sequentially in the order they appear. SQL Server использует этот атрибут, чтобы определить порядок полей для определяемых пользователем типов с несколькими полями.SQL Server uses this attribute to determine the field order for UDTs with multiple fields.

    • Тип должен содержать по крайней мере один элемент (сериализованные значения не могут иметь нулевой размер).The type must contain at least one member (serialized values cannot be zero bytes in size).

    • Все поля агрегата должны быть непреобразуемыми; ** то есть они должны иметь общее представление как в управляемой, так и в неуправляемой памяти и не требовать специальной обработки маршалером взаимодействия.All the fields of the aggregate must be blittable; that is, they must have a common representation in both managed and unmanaged memory and not require special handling by the interop marshaler.

    • Все поля определяемого пользователем типа должны иметь один из следующих типов, которые могут быть сериализованы: bool, long ulong byte, sbyte, short, ushort int,, uint,,, float , double, SqlByte, ,SqlInt16 ,SqlInt64, ,SqlSingle,, или другие типы значений, определенные пользователем, которые содержат поля одного из этих элементов SqlMoney SqlDateTime SqlInt32 SqlDouble типов.All the fields of the UDT should be of one of the following types that can be serialized: bool, byte, sbyte, short, ushort, int, uint, long, ulong, float, double, SqlByte, SqlInt16, SqlInt32, SqlInt64, SqlDateTime, SqlSingle, SqlDouble, SqlMoney, or other value types defined by the user that contain fields of one of these types.

    • Агрегат не должен указывать значение для MaxByteSize.The aggregate must not specify a value for MaxByteSize.

    • Агрегатная функция не должна иметь никаких полей [NonSerialized].The aggregate must not have any [NonSerialized] fields.

    • Поля не должны быть помечены как явные макеты (с StructLayoutAttribute.Value параметром LayoutKind.Explicit).Fields must not be marked as an explicit layout (with a StructLayoutAttribute.Value of LayoutKind.Explicit).

  • Format.UserDefined

    Требования Format.UserDefined к формату:The requirements for the Format.UserDefined format are:

Применяется к