Compartilhar via


ValueSerializer.GetSerializerFor Método

Definição

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:

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:

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 descriptorfor 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 typefor null, o comportamento será idêntico à chamada da GetSerializerFor(Type) sobrecarga.

Aplica-se a