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. Определяемый пользователем тип побайтно упорядоченного, называется «Point», метод проверки с именем «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. Использование Native и UserDefined членов перечисления имеет особые требования.Use of the Native and UserDefined enumeration members has special requirements.

  • Format.Native

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

    • StructLayoutAttribute С Value значение свойства LayoutKind.Sequential должны применяться для статистических выражений или определяемого пользователем ТИПА, если оно определено в классе, а не в структуре.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, byte, sbyte, short, ushort, int, uint, long, ulong, float , double, SqlByte, SqlInt16, SqlInt32, SqlInt64, SqlDateTime, SqlSingle, SqlDouble, SqlMoney, или других типов значений определяется пользователем, содержащие один из них поля типы.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:

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