Compartir a través de


ValueSerializer.GetSerializerFor Método

Definición

Obtiene el serializador ValueSerializer de un objeto.

Sobrecargas

GetSerializerFor(PropertyDescriptor)

Obtiene la clase ValueSerializer declarada para una propiedad, al pasar un descriptor de propiedad CLR para la propiedad.

GetSerializerFor(Type)

Obtiene el ValueSerializer declarado para el tipo especificado.

GetSerializerFor(PropertyDescriptor, IValueSerializerContext)

Obtiene la clase ValueSerializer declarada para la propiedad especificada, mediante el contexto especificado.

GetSerializerFor(Type, IValueSerializerContext)

Obtiene la clase ValueSerializer declarada para el tipo especificado, mediante el contexto especificado.

GetSerializerFor(PropertyDescriptor)

Obtiene la clase ValueSerializer declarada para una propiedad, al pasar un descriptor de propiedad CLR para la propiedad.

public:
 static System::Windows::Markup::ValueSerializer ^ GetSerializerFor(System::ComponentModel::PropertyDescriptor ^ descriptor);
public static System.Windows.Markup.ValueSerializer GetSerializerFor (System.ComponentModel.PropertyDescriptor descriptor);
static member GetSerializerFor : System.ComponentModel.PropertyDescriptor -> System.Windows.Markup.ValueSerializer
Public Shared Function GetSerializerFor (descriptor As PropertyDescriptor) As ValueSerializer

Parámetros

descriptor
PropertyDescriptor

El descriptor de propiedad CLR para la propiedad que se va a serializar.

Devoluciones

Serializador asociado a la propiedad especificada. Puede devolver null.

Excepciones

descriptor es null.

Comentarios

Para ValueSerializer una propiedad, o para un tipo que se usa como valor para una propiedad, se indica aplicando el ValueSerializerAttribute atributo en la declaración de propiedad o tipo. El GetSerializerFor método es un método de utilidad que lee la información del sistema de tipos CLR y devuelve una nueva ValueSerializer clase basada en el atributo si se encuentra en la propiedad o, a continuación, si se encuentra en el tipo de la propiedad. null es posible que se devuelva si no existe ningún serializador de este tipo. null también se puede devolver si un tipo o propiedad se atribuye deliberadamente con un valor ValueSerializerAttributeNULL .

Otro modo que GetSerializerFor admite devuelve la clase interna TypeConverterValueSerializer , que es una ValueSerializer implementación que encapsula y TypeConverter convierte los Convert métodos en métodos Convert*String (por ejemplo TypeConverter.ConvertTo , se llama con la entrada del String tipo y se traduce en ConvertToString. Esto solo se hace en los casos en los que se cumplen todas las siguientes condiciones:

Nota

Los siguientes son casos especiales: DateTime los tipos devuelven ; DateTimeValueSerializerString los tipos devuelven un serializador interno pero funcional (StringValueSerializer).

Se aplica a

GetSerializerFor(Type)

Obtiene el ValueSerializer declarado para el tipo especificado.

public:
 static System::Windows::Markup::ValueSerializer ^ GetSerializerFor(Type ^ type);
public static System.Windows.Markup.ValueSerializer GetSerializerFor (Type type);
static member GetSerializerFor : Type -> System.Windows.Markup.ValueSerializer
Public Shared Function GetSerializerFor (type As Type) As ValueSerializer

Parámetros

type
Type

Tipo para el que se va a obtener el ValueSerializer.

Devoluciones

Serializador asociado al tipo especificado. Puede devolver null.

Excepciones

type es null.

Comentarios

Para ValueSerializer un tipo se indica aplicando el ValueSerializerAttribute atributo en la declaración de tipo. El GetSerializerFor método es un método de utilidad que lee la información del sistema de tipos CLR y devuelve una nueva ValueSerializer clase basada en el atributo si se encuentra en el especificado type. null es posible que se devuelva si no existe ningún serializador de este tipo. null también se puede devolver si un tipo se atribuye deliberadamente con un valor ValueSerializerAttributeNULL .

Otro modo que GetSerializerFor admite devuelve la clase interna TypeConverterValueSerializer , que es una ValueSerializer implementación que encapsula y TypeConverter convierte los Convert métodos en métodos Convert*String (por ejemplo TypeConverter.ConvertTo , se llama con la entrada del String tipo y se traduce en ConvertToString. Esto solo se hace en los casos en los que se cumplen todas las siguientes condiciones:

Nota

Los siguientes son casos especiales: DateTime los tipos devuelven ; DateTimeValueSerializerString los tipos devuelven un serializador interno pero funcional (StringValueSerializer).

Se aplica a

GetSerializerFor(PropertyDescriptor, IValueSerializerContext)

Obtiene la clase ValueSerializer declarada para la propiedad especificada, mediante el contexto especificado.

public:
 static System::Windows::Markup::ValueSerializer ^ GetSerializerFor(System::ComponentModel::PropertyDescriptor ^ descriptor, System::Windows::Markup::IValueSerializerContext ^ context);
public static System.Windows.Markup.ValueSerializer GetSerializerFor (System.ComponentModel.PropertyDescriptor descriptor, System.Windows.Markup.IValueSerializerContext context);
static member GetSerializerFor : System.ComponentModel.PropertyDescriptor * System.Windows.Markup.IValueSerializerContext -> System.Windows.Markup.ValueSerializer
Public Shared Function GetSerializerFor (descriptor As PropertyDescriptor, context As IValueSerializerContext) As ValueSerializer

Parámetros

descriptor
PropertyDescriptor

Descriptor de la propiedad que se va a serializar.

context
IValueSerializerContext

Información contextual usada para la conversión.

Devoluciones

Serializador asociado a la propiedad especificada.

Excepciones

descriptor es null.

Comentarios

En lugar de depender exclusivamente de los atributos notificados en el sistema de tipos CLR, esta sobrecarga usa como context servicio y llama a la implementación del servicio de IValueSerializerContext.GetValueSerializerFor. Normalmente, la IValueSerializerContext.GetValueSerializerFordescriptorimplementación también se basaría en , pero podría implementar un comportamiento especial para determinados contextos.

Se debe llamar a este método cuando el autor de la llamada tiene disponible desde IValueSerializerContext un servicio. Esto garantizará que se devuelva el valor correcto ValueSerializer para el contexto específico.

Si el contexto vuelve null de su IValueSerializerContext.GetValueSerializerFor para el especificado, o si el contexto especificado descriptores null, el comportamiento es idéntico a llamar a la GetSerializerFor(PropertyDescriptor) sobrecarga.

Se aplica a

GetSerializerFor(Type, IValueSerializerContext)

Obtiene la clase ValueSerializer declarada para el tipo especificado, mediante el contexto especificado.

public:
 static System::Windows::Markup::ValueSerializer ^ GetSerializerFor(Type ^ type, System::Windows::Markup::IValueSerializerContext ^ context);
public static System.Windows.Markup.ValueSerializer GetSerializerFor (Type type, System.Windows.Markup.IValueSerializerContext context);
static member GetSerializerFor : Type * System.Windows.Markup.IValueSerializerContext -> System.Windows.Markup.ValueSerializer
Public Shared Function GetSerializerFor (type As Type, context As IValueSerializerContext) As ValueSerializer

Parámetros

type
Type

Tipo para el que se va a obtener el ValueSerializer.

context
IValueSerializerContext

Información contextual usada para la conversión.

Devoluciones

Serializador asociado al tipo especificado.

Excepciones

type es null.

Comentarios

En lugar de depender exclusivamente de los atributos notificados en el sistema de tipos CLR, esta sobrecarga usa como context servicio y llama a la implementación del servicio de IValueSerializerContext.GetValueSerializerFor. Normalmente, la IValueSerializerContext.GetValueSerializerFortypeimplementación también se basaría en , pero podría implementar un comportamiento especial para determinados contextos.

Se debe llamar a este método cuando el autor de la llamada tiene disponible desde IValueSerializerContext un servicio. Esto garantizará que se devuelva el valor correcto ValueSerializer para el contexto específico.

Si el contexto vuelve null de su IValueSerializerContext.GetValueSerializerFor para el especificado, o si el contexto especificado typees null, el comportamiento es idéntico a llamar a la GetSerializerFor(Type) sobrecarga.

Se aplica a