ValueSerializer.GetSerializerFor Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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:
A TypeConverterAttribute encontra-se na propriedade relevante, ou no tipo da propriedade relevante.
O indicado TypeConverter pode ser construído com sucesso.
Os TypeConverter retornos
truepara TypeConverter.ConvertTo, chamados de referência ao String tipo.Os TypeConverter retornos
truepara TypeConverter.CanConvertTo, chamados de referência ao String tipo.Os TypeConverter retornos
truepara TypeConverter.CanConvertFrom, chamados de referência ao String tipo.
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:
A TypeConverterAttribute encontra-se em
type.O indicado TypeConverter pode ser construído com sucesso.
Os TypeConverter retornos
truepara TypeConverter.ConvertTo, chamados de referência ao String tipo.Os TypeConverter retornos
truepara TypeConverter.CanConvertTo, chamados de referência ao String tipo.Os TypeConverter retornos
truepara TypeConverter.CanConvertFrom, chamados de referência ao String tipo.
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) .