Format Format Format Format Enum

Definición

Lo utilizan SqlUserDefinedTypeAttribute y SqlUserDefinedAggregateAttribute para indicar el formato de serialización de un tipo definido por el usuario (UDT) o agregado.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
Herencia

Campos

Native Native Native Native 1

Este formato de serialización utiliza un algoritmo muy simple que permite a SQL Server almacenar en disco una representación eficaz del UDT.This serialization format uses a very simple algorithm that enables SQL Server to store an efficient representation of the UDT on disk. Los tipos marcados para la serialización Native solo pueden tener como miembros tipos de valor ("structs" en Microsoft Visual C# y estructuras en 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. Los miembros de los tipos de referencia (como clases en Visual C# y Visual Basic), ya sean definidos por el usuario o existentes en las bibliotecas de clases de .NET (como String), no se admiten.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

Se desconoce el formato de serialización.The serialization format is unknown.

UserDefined UserDefined UserDefined UserDefined 2

Este formato de serialización otorga al desarrollador pleno control sobre el formato binario a través de los métodos Write(BinaryWriter) y Read(BinaryReader).This serialization format gives the developer full control over the binary format through the Write(BinaryWriter) and Read(BinaryReader) methods.

Ejemplos

En el ejemplo siguiente se UserDefinedType muestra el atributo del UDT Point.The following example shows the UserDefinedType attribute of the Point UDT. El UDT está ordenado por bytes, se denomina "Point", tiene un método de validación denominado "ValidatePoint" y usa el formato de serialización nativo.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

Comentarios

SqlUserDefinedTypeAttribute UtilizaSqlUserDefinedAggregateAttribute esta enumeración para indicar el formato de serialización de un tipo definido por el usuario (UDT) o un agregado.This enumeration is used by SqlUserDefinedTypeAttribute and SqlUserDefinedAggregateAttribute to indicate the serialization format of a user-defined type (UDT) or aggregate. El uso de Native los UserDefined miembros de enumeración y tiene requisitos especiales.Use of the Native and UserDefined enumeration members has special requirements.

  • Format.Native

    Los requisitos para el Format.Native formato son los siguientes:The requirements for the Format.Native format are:

    • El StructLayoutAttribute con un Value valor de propiedad LayoutKind.Sequential de debe aplicarse al agregado o UDT si está definido en una clase y no en una estructura.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. Esto controla el diseño físico de los campos de datos y se usa para obligar a que los miembros se colocan secuencialmente en el orden en que aparecen.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 usa este atributo para determinar el orden de los UDT con varios campos.SQL Server uses this attribute to determine the field order for UDTs with multiple fields.

    • El tipo debe contener al menos un miembro (los valores serializados no pueden tener un tamaño de cero bytes).The type must contain at least one member (serialized values cannot be zero bytes in size).

    • Todos los campos del agregado deben ser bits por bytes; es decir, deben tener una representación común en la memoria administrada y no administrada, y no requieren un tratamiento especial por parte del serializador de interoperabilidad.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.

    • boolTodos los campos del UDT deben ser de uno de los siguientes tipos que se pueden serializar:, long ulong byte, sbyte, short, ushort, int, uint,,, float , double, SqlByte, ,SqlInt16 ,SqlInt64, ,SqlSingle,, uSqlMoneyotros tipos de valor definidos por el usuario que contienen campos de uno de estos SqlDouble SqlInt32 SqlDateTime distintos.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.

    • El agregado no debe especificar un valor para MaxByteSize.The aggregate must not specify a value for MaxByteSize.

    • El agregado no debe tener ningún campo [no serializado].The aggregate must not have any [NonSerialized] fields.

    • Los campos no deben marcarse como un diseño explícito (con StructLayoutAttribute.Value un LayoutKind.Explicitde).Fields must not be marked as an explicit layout (with a StructLayoutAttribute.Value of LayoutKind.Explicit).

  • Format.UserDefined

    Los requisitos para el Format.UserDefined formato son los siguientes:The requirements for the Format.UserDefined format are:

Se aplica a