ValueSerializer.GetSerializerFor Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Získá objekt ValueSerializer pro objekt.
Přetížení
| GetSerializerFor(PropertyDescriptor) |
ValueSerializer Získá deklarované pro vlastnost předáním popisovače vlastnosti CLR pro vlastnost. |
| GetSerializerFor(Type) |
ValueSerializer Získá deklarovaný pro zadaný typ. |
| GetSerializerFor(PropertyDescriptor, IValueSerializerContext) |
Získá deklarované ValueSerializer pro zadanou vlastnost pomocí zadaného kontextu. |
| GetSerializerFor(Type, IValueSerializerContext) |
ValueSerializer Získá deklarovaný pro zadaný typ pomocí zadaného kontextu. |
GetSerializerFor(PropertyDescriptor)
ValueSerializer Získá deklarované pro vlastnost předáním popisovače vlastnosti CLR pro vlastnost.
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
Parametry
- descriptor
- PropertyDescriptor
Popisovač vlastnosti CLR pro vlastnost, která má být serializována.
Návraty
Serializátor přidružený k zadané vlastnosti. Může vrátit null.
Výjimky
descriptor je null.
Poznámky
Vlastnost ValueSerializer nebo typ, který se používá jako hodnota vlastnosti, je označen použitím atributu ValueSerializerAttribute na deklaraci vlastnosti nebo typu. Metoda GetSerializerFor je obslužná metoda, která čte systémové informace typu CLR a vrací novou ValueSerializer třídu na základě atributu, pokud je nalezena ve vlastnosti, nebo pokud je nalezena v typu vlastnosti.
null může být vrácena, pokud takový serializátor neexistuje.
null může být vrácena také v případě, že je typ nebo vlastnost záměrně přiřazena hodnotou ValueSerializerAttributenull .
Další režim, který GetSerializerFor podporuje, je vrácení interní TypeConverterValueSerializer třídy, což je ValueSerializer implementace, která zabalí TypeConverter a přeloží Convert metody na Convert*String metody (například TypeConverter.ConvertTo je volána se vstupem String typu a překládá na ConvertToString. To se provádí pouze v případech, kdy platí všechny následující podmínky:
Vlastnost TypeConverterAttribute se nachází u příslušné vlastnosti nebo u typu příslušné vlastnosti.
Uvedené je TypeConverter možné úspěšně vytvořit.
Vrátí TypeConverter hodnotu
truepro TypeConverter.ConvertTo, volanou odkazující na String typ.Vrátí TypeConverter hodnotu
truepro TypeConverter.CanConvertTo, volanou odkazující na String typ.Vrátí TypeConverter hodnotu
truepro TypeConverter.CanConvertFrom, volanou odkazující na String typ.
Poznámka
Následují zvláštní případy: DateTime typy vrací DateTimeValueSerializerString ; typy vracejí interní, ale funkční serializátor (StringValueSerializer).
Platí pro
GetSerializerFor(Type)
ValueSerializer Získá deklarovaný pro zadaný typ.
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
Parametry
- type
- Type
Typ, pro který ValueSerializer se má získat.
Návraty
Serializátor přidružený k zadanému typu. Může vrátit null.
Výjimky
type je null.
Poznámky
Typ ValueSerializer je určen použitím atributu ValueSerializerAttribute na deklaraci typu. Metoda GetSerializerFor je obslužná metoda, která čte systémové informace typu CLR a vrací novou ValueSerializer třídu založenou na atributu, pokud je nalezena v zadaném typeobjektu .
null může být vrácena, pokud takový serializátor neexistuje.
null může být vrácena také v případě, že je typ záměrně přiřazený hodnotou ValueSerializerAttributenull .
Další režim, který GetSerializerFor podporuje, je vrácení interní TypeConverterValueSerializer třídy, což je ValueSerializer implementace, která zabalí TypeConverter a přeloží Convert metody na Convert*String metody (například TypeConverter.ConvertTo je volána se vstupem String typu a překládá na ConvertToString. To se provádí pouze v případech, kdy platí všechny následující podmínky:
Hodnota TypeConverterAttribute se nachází na .
typeUvedené je TypeConverter možné úspěšně vytvořit.
Vrátí TypeConverter hodnotu
truepro TypeConverter.ConvertTo, volanou odkazující na String typ.Vrátí TypeConverter hodnotu
truepro TypeConverter.CanConvertTo, volanou odkazující na String typ.Vrátí TypeConverter hodnotu
truepro TypeConverter.CanConvertFrom, volanou odkazující na String typ.
Poznámka
Následují zvláštní případy: DateTime typy vrací DateTimeValueSerializerString ; typy vracejí interní, ale funkční serializátor (StringValueSerializer).
Platí pro
GetSerializerFor(PropertyDescriptor, IValueSerializerContext)
Získá deklarované ValueSerializer pro zadanou vlastnost pomocí zadaného kontextu.
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
Parametry
- descriptor
- PropertyDescriptor
Popisovač pro vlastnost, která má být serializována.
- context
- IValueSerializerContext
Kontextové informace, které se používají pro převod.
Návraty
Serializátor přidružený k zadané vlastnosti.
Výjimky
descriptor je null.
Poznámky
Místo toho, aby se toto přetížení spoléhalo čistě na atributy hlášené v systému typů CLR, používá context jako službu a volá implementaci IValueSerializerContext.GetValueSerializerForslužby . Implementace IValueSerializerContext.GetValueSerializerFor by se obvykle také spoléhala na descriptor, ale může implementovat speciální chování pro určité kontexty.
Tato metoda by měla být volána, pokud má volající k dispozici IValueSerializerContext ze služby. Tím se zajistí, že se pro konkrétní kontext vrátí správná ValueSerializer hodnota.
Pokud se kontext vrátí null ze svého IValueSerializerContext.GetValueSerializerFor pro zadané descriptornebo pokud kontext, který zadáte , je nullchování stejné jako volání GetSerializerFor(PropertyDescriptor) přetížení.
Platí pro
GetSerializerFor(Type, IValueSerializerContext)
ValueSerializer Získá deklarovaný pro zadaný typ pomocí zadaného kontextu.
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
Parametry
- type
- Type
Typ, pro který ValueSerializer se má získat.
- context
- IValueSerializerContext
Kontextové informace, které se používají pro převod.
Návraty
Serializátor přidružený k zadanému typu.
Výjimky
type je null.
Poznámky
Místo toho, aby se toto přetížení spoléhalo čistě na atributy hlášené v systému typů CLR, používá context jako službu a volá implementaci IValueSerializerContext.GetValueSerializerForslužby . Implementace IValueSerializerContext.GetValueSerializerFor by se obvykle také spoléhala na type, ale může implementovat speciální chování pro určité kontexty.
Tato metoda by měla být volána, pokud má volající k dispozici IValueSerializerContext ze služby. Tím se zajistí, že se pro konkrétní kontext vrátí správná ValueSerializer hodnota.
Pokud se kontext vrátí null ze svého IValueSerializerContext.GetValueSerializerFor pro zadané typenebo pokud kontext, který zadáte , je nullchování stejné jako volání GetSerializerFor(Type) přetížení.