ValueSerializer.GetSerializerFor Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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:
TypeConverterAttribute Se encuentra en la propiedad pertinente o en el tipo de propiedad correspondiente.
El indicado TypeConverter se puede construir correctamente.
Devuelve TypeConverter
true
para TypeConverter.ConvertTo, denominado que hace referencia al String tipo .Devuelve TypeConverter
true
para TypeConverter.CanConvertTo, denominado que hace referencia al String tipo .Devuelve TypeConverter
true
para TypeConverter.CanConvertFrom, denominado que hace referencia al String tipo .
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:
TypeConverterAttribute Se encuentra en
type
.El indicado TypeConverter se puede construir correctamente.
Devuelve TypeConverter
true
para TypeConverter.ConvertTo, denominado que hace referencia al String tipo .Devuelve TypeConverter
true
para TypeConverter.CanConvertTo, denominado que hace referencia al String tipo .Devuelve TypeConverter
true
para TypeConverter.CanConvertFrom, denominado que hace referencia al String tipo .
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.GetValueSerializerFordescriptor
implementació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 descriptor
es 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.GetValueSerializerFortype
implementació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 type
es null
, el comportamiento es idéntico a llamar a la GetSerializerFor(Type) sobrecarga.