ValueSerializer.GetSerializerFor Metodo

Definizione

Ottiene l'oggetto ValueSerializer per un oggetto .

Overload

Nome Descrizione
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 utilizzando il contesto specificato.

GetSerializerFor(Type, IValueSerializerContext)

Ottiene l'oggetto ValueSerializer dichiarato per il tipo specificato, utilizzando 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 di proprietà CLR per la proprietà da serializzare.

Valori restituiti

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 alla dichiarazione di proprietà o di tipo. Il GetSerializerFor metodo è un metodo di utilità che legge le informazioni sul sistema del tipo CLR e restituisce una nuova ValueSerializer classe basata sull'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 può anche essere restituito se un tipo o una proprietà è deliberatamente attribuito con un valore ValueSerializerAttributeNull.

Un'altra modalità che GetSerializerFor supporta è la restituzione della 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 converte in ConvertToString. Questa operazione viene eseguita solo nei casi in cui tutte le condizioni seguenti sono vere:

Note

Di seguito sono riportati casi speciali: DateTime i tipi restituiscono un DateTimeValueSerializeroggetto ; String i tipi restituiscono un serializzatore 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 .ValueSerializer

Valori restituiti

Serializzatore associato al tipo specificato. Può restituire null.

Eccezioni

type è null.

Commenti

Un ValueSerializer oggetto per un tipo è indicato applicando l'attributo ValueSerializerAttribute alla dichiarazione di tipo. Il GetSerializerFor metodo è un metodo di utilità che legge le informazioni sul sistema dei tipi CLR e restituisce una nuova ValueSerializer classe basata sull'attributo se presente nell'oggetto specificato type. null potrebbe essere restituito se non esiste alcun serializzatore di questo tipo. null potrebbe anche essere restituito se un tipo è deliberatamente attribuito con un valore ValueSerializerAttributeNull.

Un'altra modalità che GetSerializerFor supporta è la restituzione della 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 converte in ConvertToString. Questa operazione viene eseguita solo nei casi in cui tutte le condizioni seguenti sono vere:

Note

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

Si applica a

GetSerializerFor(PropertyDescriptor, IValueSerializerContext)

Ottiene l'oggetto ValueSerializer dichiarato per la proprietà specificata utilizzando 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 per la proprietà da serializzare.

context
IValueSerializerContext

Informazioni sul contesto utilizzate per la conversione.

Valori restituiti

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 oggetto disponibile IValueSerializerContext da un servizio. In questo modo si garantisce che venga restituito il valore corretto ValueSerializer per il contesto specifico.

Se il contesto restituisce null da IValueSerializerContext.GetValueSerializerFor per l'oggetto specificato o se il contesto specificato descriptorè null, il comportamento è identico alla chiamata dell'overload GetSerializerFor(PropertyDescriptor) .

Si applica a

GetSerializerFor(Type, IValueSerializerContext)

Ottiene l'oggetto ValueSerializer dichiarato per il tipo specificato, utilizzando 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 .ValueSerializer

context
IValueSerializerContext

Informazioni sul contesto utilizzate per la conversione.

Valori restituiti

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 oggetto disponibile IValueSerializerContext da un servizio. In questo modo si garantisce che venga restituito il valore corretto ValueSerializer per il contesto specifico.

Se il contesto restituisce null da IValueSerializerContext.GetValueSerializerFor per l'oggetto specificato o se il contesto specificato typeè null, il comportamento è identico alla chiamata dell'overload GetSerializerFor(Type) .

Si applica a