ValueSerializer.GetSerializerFor Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Obtém o ValueSerializer para um objeto.
Sobrecargas
GetSerializerFor(PropertyDescriptor) |
Obtém o ValueSerializer declarado para uma propriedade, passando um descritor de propriedade CLR para a propriedade. |
GetSerializerFor(Type) |
Obtém o ValueSerializer declarado para o tipo especificado. |
GetSerializerFor(PropertyDescriptor, IValueSerializerContext) |
Obtém o ValueSerializer declarado para a propriedade especificada usando o contexto especificado. |
GetSerializerFor(Type, IValueSerializerContext) |
Obtém o ValueSerializer declarado para o tipo especificado usando o contexto especificado. |
GetSerializerFor(PropertyDescriptor)
Obtém o ValueSerializer declarado para uma propriedade, passando um descritor de propriedade CLR para a propriedade.
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
O descritor de propriedade CLR para a propriedade a ser serializada.
Retornos
O serializador associado à propriedade especificada. Pode retornar null
.
Exceções
descriptor
é null
.
Comentários
Um ValueSerializer para uma propriedade ou para um tipo que é usado como o valor de uma propriedade, é indicado aplicando o ValueSerializerAttribute atributo na propriedade ou na declaração de tipo. O GetSerializerFor método é um método utilitário que lê as informações do sistema de tipos CLR e retorna uma nova ValueSerializer classe com base no atributo se encontrado na propriedade ou, em seguida, se encontrado no tipo da propriedade.
null
pode ser retornado se não existir esse serializador.
null
também poderá ser retornado se um tipo ou propriedade for deliberadamente atribuído com um valor ValueSerializerAttributenulo.
Outro modo compatível GetSerializerFor é retornar a classe interna TypeConverterValueSerializer
, que é uma ValueSerializer implementação que encapsula um TypeConverter e converte os Convert
métodos em Convert*String
métodos (por exemplo TypeConverter.ConvertTo , é chamado com a entrada do String tipo e é convertido em ConvertToString. Isso é feito somente nos casos em que todas as seguintes opções são verdadeiras:
Um TypeConverterAttribute é encontrado na propriedade relevante ou no tipo da propriedade relevante.
O indicado TypeConverter pode ser construído com êxito.
O TypeConverter retorna
true
para TypeConverter.ConvertTo, chamado referenciando o String tipo.O TypeConverter retorna
true
para TypeConverter.CanConvertTo, chamado referenciando o String tipo.O TypeConverter retorna
true
para TypeConverter.CanConvertFrom, chamado referenciando o String tipo.
Observação
Veja a seguir casos especiais: os DateTime tipos retornam um DateTimeValueSerializer; String os tipos retornam um serializador interno, mas funcional (StringValueSerializer
).
Aplica-se a
GetSerializerFor(Type)
Obtém o ValueSerializer declarado para o 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
O tipo para o qual obter ValueSerializer.
Retornos
O serializador associado ao tipo especificado. Pode retornar null
.
Exceções
type
é null
.
Comentários
Um ValueSerializer para um tipo é indicado aplicando o ValueSerializerAttribute atributo na declaração de tipo. O GetSerializerFor método é um método utilitário que lê as informações do sistema de tipo CLR e retorna uma nova ValueSerializer classe com base no atributo , se encontrado no especificado type
.
null
pode ser retornado se não existir esse serializador.
null
também poderá ser retornado se um tipo for deliberadamente atribuído com um valor ValueSerializerAttributenulo.
Outro modo compatível GetSerializerFor é retornar a classe interna TypeConverterValueSerializer
, que é uma ValueSerializer implementação que encapsula um TypeConverter e converte os Convert
métodos em Convert*String
métodos (por exemplo TypeConverter.ConvertTo , é chamado com a entrada do String tipo e é convertido em ConvertToString. Isso é feito somente nos casos em que todas as seguintes opções são verdadeiras:
Um TypeConverterAttribute é encontrado em
type
.O indicado TypeConverter pode ser construído com êxito.
O TypeConverter retorna
true
para TypeConverter.ConvertTo, chamado referenciando o String tipo.O TypeConverter retorna
true
para TypeConverter.CanConvertTo, chamado referenciando o String tipo.O TypeConverter retorna
true
para TypeConverter.CanConvertFrom, chamado referenciando o String tipo.
Observação
Veja a seguir casos especiais: os DateTime tipos retornam um DateTimeValueSerializer; String os tipos retornam um serializador interno, mas funcional (StringValueSerializer
).
Aplica-se a
GetSerializerFor(PropertyDescriptor, IValueSerializerContext)
Obtém o ValueSerializer declarado para a propriedade especificada usando o 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
Descritor da propriedade a ser serializada.
- context
- IValueSerializerContext
Informações de contexto que são usadas para conversão.
Retornos
O serializador associado à propriedade especificada.
Exceções
descriptor
é null
.
Comentários
Em vez de depender apenas de atributos relatados no sistema de tipos CLR, essa sobrecarga usa o context
como um serviço e chama a implementação do serviço de IValueSerializerContext.GetValueSerializerFor. Normalmente IValueSerializerContext.GetValueSerializerFor , a implementação também dependeria do descriptor
, mas poderia implementar um comportamento especial para determinados contextos.
Esse método deve ser chamado quando o chamador tiver um disponível IValueSerializerContext de um serviço. Isso garantirá que o correto ValueSerializer seja retornado para o contexto específico.
Se o contexto retornar null
de seu IValueSerializerContext.GetValueSerializerFor para o especificado ou se o contexto especificado descriptor
for null
, o comportamento será idêntico à chamada da GetSerializerFor(PropertyDescriptor) sobrecarga.
Aplica-se a
GetSerializerFor(Type, IValueSerializerContext)
Obtém o ValueSerializer declarado para o tipo especificado usando o 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
O tipo para o qual obter ValueSerializer.
- context
- IValueSerializerContext
Informações de contexto que são usadas para conversão.
Retornos
O serializador associado ao tipo especificado.
Exceções
type
é null
.
Comentários
Em vez de depender apenas de atributos relatados no sistema de tipos CLR, essa sobrecarga usa o context
como um serviço e chama a implementação do serviço de IValueSerializerContext.GetValueSerializerFor. Normalmente IValueSerializerContext.GetValueSerializerFor , a implementação também dependeria do type
, mas poderia implementar um comportamento especial para determinados contextos.
Esse método deve ser chamado quando o chamador tiver um disponível IValueSerializerContext de um serviço. Isso garantirá que o correto ValueSerializer seja retornado para o contexto específico.
Se o contexto retornar null
de seu IValueSerializerContext.GetValueSerializerFor para o especificado ou se o contexto especificado type
for null
, o comportamento será idêntico à chamada da GetSerializerFor(Type) sobrecarga.