ValueSerializer.GetSerializerFor Método

Definição

Recebe o ValueSerializer para um objeto.

Sobrecargas

Name Description
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 serializar.

Devoluções

O serializador associado à propriedade especificada. Pode regressar null.

Exceções

descriptor é null.

Observações

A ValueSerializer para uma propriedade, ou para um tipo que é usado como valor de uma propriedade, é indicado aplicando o ValueSerializerAttribute atributo na declaração de propriedade ou tipo. O GetSerializerFor método é um método utilitário que lê a informação do sistema de tipos CLR e devolve uma nova ValueSerializer classe com base no atributo se encontrado na propriedade, ou então se encontrado no tipo da propriedade. null pode ser devolvido se tal serializador não existir. null pode também ser devolvido se um tipo ou propriedade for deliberadamente atribuído com um valor ValueSerializerAttributenulo .

Outro modo que GetSerializerFor suporta é o retorno da classe interna TypeConverterValueSerializer , que é uma ValueSerializer implementação que envolve um TypeConverter e traduz os Convert métodos em Convert*String métodos (por exemplo TypeConverter.ConvertTo , é chamada com entrada do String tipo, e traduz para ConvertToString. Isto é feito apenas nos casos em que todas as seguintes afirmações são verdadeiras:

Note

Os seguintes são casos especiais: DateTime tipos retornam um DateTimeValueSerializer; String 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 que se apanha para o ValueSerializer quê.

Devoluções

O serializador associado ao tipo especificado. Pode regressar null.

Exceções

type é null.

Observações

A ValueSerializer para um tipo é indicado aplicando o ValueSerializerAttribute atributo na declaração do tipo. O GetSerializerFor método é um método utilitário que lê a informação do sistema de tipos CLR e devolve uma nova ValueSerializer classe com base no atributo se encontrado no especificado type. null pode ser devolvido se tal serializador não existir. null pode também ser devolvido se um tipo for deliberadamente atribuído com um valor ValueSerializerAttributenulo .

Outro modo que GetSerializerFor suporta é o retorno da classe interna TypeConverterValueSerializer , que é uma ValueSerializer implementação que envolve um TypeConverter e traduz os Convert métodos em Convert*String métodos (por exemplo TypeConverter.ConvertTo , é chamada com entrada do String tipo, e traduz para ConvertToString. Isto é feito apenas nos casos em que todas as seguintes afirmações são verdadeiras:

Note

Os seguintes são casos especiais: DateTime tipos retornam um DateTimeValueSerializer; String 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 para a propriedade a serializar.

context
IValueSerializerContext

Informação de contexto usada para conversão.

Devoluções

O serializador associado à propriedade especificada.

Exceções

descriptor é null.

Observações

Em vez de depender apenas dos atributos reportados no sistema do tipo CLR, esta sobrecarga utiliza o context como serviço, e chama à implementação do serviço de IValueSerializerContext.GetValueSerializerFor. A IValueSerializerContext.GetValueSerializerFor implementação normalmente também dependeria do descriptor, mas poderia implementar um comportamento especial para certos contextos.

Este método deve ser chamado quando o chamador tem um serviço disponível IValueSerializerContext . Isto garante que o correto ValueSerializer é devolvido para o contexto específico.

Se o contexto retorna null de its IValueSerializerContext.GetValueSerializerFor for your especificado descriptor, ou se o contexto que especificas for null, então o comportamento é idêntico a chamar a sobrecarga GetSerializerFor(PropertyDescriptor) .

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 que se apanha para o ValueSerializer quê.

context
IValueSerializerContext

Informação de contexto usada para conversão.

Devoluções

O serializador associado ao tipo especificado.

Exceções

type é null.

Observações

Em vez de depender apenas dos atributos reportados no sistema do tipo CLR, esta sobrecarga utiliza o context como serviço, e chama à implementação do serviço de IValueSerializerContext.GetValueSerializerFor. A IValueSerializerContext.GetValueSerializerFor implementação normalmente também dependeria do type, mas poderia implementar um comportamento especial para certos contextos.

Este método deve ser chamado quando o chamador tem um serviço disponível IValueSerializerContext . Isto garante que o correto ValueSerializer é devolvido para o contexto específico.

Se o contexto retorna null de its IValueSerializerContext.GetValueSerializerFor for your especificado type, ou se o contexto que especificas for null, então o comportamento é idêntico a chamar a sobrecarga GetSerializerFor(Type) .

Aplica-se a