ValueSerializer.GetSerializerFor Metodo

Definizione

Ottiene il ValueSerializer per un oggetto.

Overload

GetSerializerFor(PropertyDescriptor)

Ottiene l'oggetto ValueSerializer dichiarato per una proprietà, passando un descrittore di proprietà CLR per la proprietà.

GetSerializerFor(Type)

Ottiene l'oggetto ValueSerializer dichiarato per il tipo specificato.

GetSerializerFor(PropertyDescriptor, IValueSerializerContext)

Ottiene l'oggetto ValueSerializer dichiarato per la proprietà specificata, usando il contesto specificato.

GetSerializerFor(Type, IValueSerializerContext)

Ottiene l'oggetto ValueSerializer dichiarato per il tipo specificato, usando il contesto specificato.

GetSerializerFor(PropertyDescriptor)

Ottiene l'oggetto ValueSerializer dichiarato per una proprietà, passando un descrittore di proprietà CLR per la proprietà.

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

Parametri

descriptor
PropertyDescriptor

Descrittore per la proprietà CLR da serializzare.

Restituisce

Serializzatore associato alla proprietà specificata. Può restituire null.

Eccezioni

descriptor è null.

Commenti

Un ValueSerializer oggetto per una proprietà o per un tipo utilizzato come valore per una proprietà, è indicato applicando l'attributo ValueSerializerAttribute nella dichiarazione di proprietà o tipo. Il GetSerializerFor metodo è un metodo di utilità che legge le informazioni sul sistema del tipo CLR e restituisce una nuova ValueSerializer classe in base all'attributo se trovato nella proprietà oppure, se trovato nel tipo della proprietà. null potrebbe essere restituito se non esiste alcun serializzatore di questo tipo. null potrebbe anche essere restituito se un tipo o una proprietà è intenzionalmente attribuito con un valore ValueSerializerAttributeNull .

Un'altra modalità supportata GetSerializerFor restituisce la classe interna TypeConverterValueSerializer , ovvero un'implementazione ValueSerializer che esegue il wrapping di un TypeConverter oggetto e converte i Convert metodi in Convert*String metodi ( ad esempio TypeConverter.ConvertTo viene chiamato con input del String tipo e si traduce in ConvertToString. Questa operazione viene eseguita solo nei casi in cui tutte le operazioni seguenti sono vere:

Nota

Di seguito sono riportati casi speciali: DateTime i tipi restituiscono un oggetto ; String i tipi restituiscono un DateTimeValueSerializerserializzatore interno ma funzionale (StringValueSerializer).

Si applica a

GetSerializerFor(Type)

Ottiene l'oggetto ValueSerializer dichiarato per il tipo specificato.

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

Parametri

type
Type

Tipo per cui ottenere l'oggetto ValueSerializer.

Restituisce

Serializzatore associato al tipo specificato. Può restituire null.

Eccezioni

type è null.

Commenti

Un ValueSerializer oggetto per un tipo è indicato applicando l'attributo ValueSerializerAttribute nella dichiarazione di tipo. Il GetSerializerFor metodo è un metodo di utilità che legge le informazioni sul sistema del tipo CLR e restituisce una nuova ValueSerializer classe in base all'attributo se trovato nell'oggetto specificato type. null potrebbe essere restituito se non esiste alcun serializzatore di questo tipo. null potrebbe anche essere restituito se un tipo viene assegnato intenzionalmente con un valore ValueSerializerAttributeNull.

Un'altra modalità supportata GetSerializerFor restituisce la classe interna TypeConverterValueSerializer , ovvero un'implementazione ValueSerializer che esegue il wrapping di un TypeConverter oggetto e converte i Convert metodi in Convert*String metodi ( ad esempio TypeConverter.ConvertTo viene chiamato con input del String tipo e si traduce in ConvertToString. Questa operazione viene eseguita solo nei casi in cui tutte le operazioni seguenti sono vere:

Nota

Di seguito sono riportati casi speciali: DateTime i tipi restituiscono un oggetto ; String i tipi restituiscono un DateTimeValueSerializerserializzatore interno ma funzionale (StringValueSerializer).

Si applica a

GetSerializerFor(PropertyDescriptor, IValueSerializerContext)

Ottiene l'oggetto ValueSerializer dichiarato per la proprietà specificata, usando il contesto specificato.

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

Parametri

descriptor
PropertyDescriptor

Descrittore della proprietà da serializzare.

context
IValueSerializerContext

Informazioni di contesto utilizzate per la conversione.

Restituisce

Serializzatore associato alla proprietà specificata.

Eccezioni

descriptor è null.

Commenti

Anziché basarsi esclusivamente sugli attributi segnalati nel sistema di tipi CLR, questo overload usa come context servizio e chiama l'implementazione del servizio di IValueSerializerContext.GetValueSerializerFor. L'implementazione IValueSerializerContext.GetValueSerializerFor si basa in genere anche su descriptor, ma potrebbe implementare un comportamento speciale per determinati contesti.

Questo metodo deve essere chiamato quando il chiamante dispone di un servizio disponibile IValueSerializerContext . Ciò garantisce che il valore corretto ValueSerializer venga restituito per il contesto specifico.

Se il contesto restituisce null dal IValueSerializerContext.GetValueSerializerFor relativo oggetto per l'oggetto specificato o se il contesto specificato descriptorè , il comportamento è nullidentico a chiamare l'overload GetSerializerFor(PropertyDescriptor) .

Si applica a

GetSerializerFor(Type, IValueSerializerContext)

Ottiene l'oggetto ValueSerializer dichiarato per il tipo specificato, usando il contesto specificato.

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

Parametri

type
Type

Tipo per cui ottenere l'oggetto ValueSerializer.

context
IValueSerializerContext

Informazioni di contesto utilizzate per la conversione.

Restituisce

Serializzatore associato al tipo specificato.

Eccezioni

type è null.

Commenti

Anziché basarsi esclusivamente sugli attributi segnalati nel sistema di tipi CLR, questo overload usa come context servizio e chiama l'implementazione del servizio di IValueSerializerContext.GetValueSerializerFor. L'implementazione IValueSerializerContext.GetValueSerializerFor si basa in genere anche su type, ma potrebbe implementare un comportamento speciale per determinati contesti.

Questo metodo deve essere chiamato quando il chiamante dispone di un servizio disponibile IValueSerializerContext . Ciò garantisce che il valore corretto ValueSerializer venga restituito per il contesto specifico.

Se il contesto restituisce null dal IValueSerializerContext.GetValueSerializerFor relativo oggetto per l'oggetto specificato o se il contesto specificato typeè , il comportamento è nullidentico a chiamare l'overload GetSerializerFor(Type) .

Si applica a