ValueSerializer.GetSerializerFor Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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:
Un TypeConverterAttribute oggetto viene trovato nella proprietà pertinente o nel tipo della proprietà pertinente.
L'oggetto indicato TypeConverter può essere costruito correttamente.
Restituisce TypeConverter
trueper TypeConverter.ConvertTo, denominato che fa riferimento al String tipo .Restituisce TypeConverter
trueper TypeConverter.CanConvertTo, denominato che fa riferimento al String tipo .Restituisce TypeConverter
trueper TypeConverter.CanConvertFrom, denominato che fa riferimento al String tipo .
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:
Un TypeConverterAttribute oggetto è disponibile in
type.L'oggetto indicato TypeConverter può essere costruito correttamente.
Restituisce TypeConverter
trueper TypeConverter.ConvertTo, denominato che fa riferimento al String tipo .Restituisce TypeConverter
trueper TypeConverter.CanConvertTo, denominato che fa riferimento al String tipo .Restituisce TypeConverter
trueper TypeConverter.CanConvertFrom, denominato che fa riferimento al String tipo .
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) .