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í.
ValueSerializer Získá objekt pro objekt.
Přetížení
| Name | Description |
|---|---|
| GetSerializerFor(PropertyDescriptor) |
ValueSerializer Získá deklarovanou pro vlastnost předáním popisovače vlastnosti CLR pro vlastnost. |
| GetSerializerFor(Type) |
ValueSerializer Získá deklarovaný pro zadaný typ. |
| GetSerializerFor(PropertyDescriptor, IValueSerializerContext) |
ValueSerializer Získá deklarovanou 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á deklarovanou 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 metoda nástroje, která čte systémové informace o typu CLR a vrací novou ValueSerializer třídu založenou na atributu, pokud je nalezena ve vlastnosti, nebo pokud je nalezena v typu vlastnosti.
null může být vrácena, pokud neexistuje žádný takový serializátor.
nullmůže být vrácena také v případě, že je typ nebo vlastnost záměrně přiřazena hodnotou null.ValueSerializerAttribute
Jiný režim, který GetSerializerFor podporuje vrací interní TypeConverterValueSerializer třídu, což je ValueSerializer implementace, která zabalí a přeloží TypeConverterConvert metody do Convert*String metod (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 jsou splněny všechny následující podmínky:
A TypeConverterAttribute se nachází u příslušné vlastnosti nebo typu příslušné vlastnosti.
TypeConverter Označení lze úspěšně vytvořit.
Vrátí TypeConverter
truehodnotu pro TypeConverter.ConvertTo, která se nazývá odkazující na String typ.Vrátí TypeConverter
truehodnotu pro TypeConverter.CanConvertTo, která se nazývá odkazující na String typ.Vrátí TypeConverter
truehodnotu pro TypeConverter.CanConvertFrom, která se nazývá odkazující na String typ.
Note
Toto jsou zvláštní případy: DateTime typy vrací ; typy vrací DateTimeValueSerializerStringinterní, 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ý chcete získat.ValueSerializer
Návraty
Serializátor přidružený k zadanému typu. Může vrátit null.
Výjimky
type je null.
Poznámky
Typ A ValueSerializer je označen použitím ValueSerializerAttribute atributu u deklarace typu. Metoda GetSerializerFor je metoda nástroje, která čte systémové informace o typu CLR a vrací novou ValueSerializer třídu na základě atributu, pokud je nalezen v zadaném type.
null může být vrácena, pokud neexistuje žádný takový serializátor.
null může být vrácena také v případě, že typ je záměrně přiřazen s hodnotou ValueSerializerAttributenull.
Jiný režim, který GetSerializerFor podporuje vrací interní TypeConverterValueSerializer třídu, což je ValueSerializer implementace, která zabalí a přeloží TypeConverterConvert metody do Convert*String metod (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 jsou splněny všechny následující podmínky:
A TypeConverterAttribute je nalezen na
type.TypeConverter Označení lze úspěšně vytvořit.
Vrátí TypeConverter
truehodnotu pro TypeConverter.ConvertTo, která se nazývá odkazující na String typ.Vrátí TypeConverter
truehodnotu pro TypeConverter.CanConvertTo, která se nazývá odkazující na String typ.Vrátí TypeConverter
truehodnotu pro TypeConverter.CanConvertFrom, která se nazývá odkazující na String typ.
Note
Toto jsou zvláštní případy: DateTime typy vrací ; typy vrací DateTimeValueSerializerStringinterní, ale funkční serializátor (StringValueSerializer).
Platí pro
GetSerializerFor(PropertyDescriptor, IValueSerializerContext)
ValueSerializer Získá deklarovanou 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č vlastnosti, která má být serializována.
- context
- IValueSerializerContext
Kontextové informace, které se používají k převodu
Návraty
Serializátor přidružený k zadané vlastnosti.
Výjimky
descriptor je null.
Poznámky
Spíše než spoléhání čistě na atributy hlášené v systému typů CLR, toto přetížení používá context jako službu a volá implementaci IValueSerializerContext.GetValueSerializerForslužby . Implementace IValueSerializerContext.GetValueSerializerFor se obvykle také spoléhá 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 zajistíte, že se pro konkrétní kontext vrátí správná odpověď ValueSerializer .
Pokud se kontext vrátí null z jeho IValueSerializerContext.GetValueSerializerFor zadaného objektu descriptornebo pokud je nullzadaný kontext , chování je 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ý chcete získat.ValueSerializer
- context
- IValueSerializerContext
Kontextové informace, které se používají k převodu
Návraty
Serializátor přidružený k zadanému typu.
Výjimky
type je null.
Poznámky
Spíše než spoléhání čistě na atributy hlášené v systému typů CLR, toto přetížení používá context jako službu a volá implementaci IValueSerializerContext.GetValueSerializerForslužby . Implementace IValueSerializerContext.GetValueSerializerFor se obvykle také spoléhá 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 zajistíte, že se pro konkrétní kontext vrátí správná odpověď ValueSerializer .
Pokud se kontext vrátí null z jeho IValueSerializerContext.GetValueSerializerFor zadaného objektu typenebo pokud je nullzadaný kontext , chování je stejné jako volání GetSerializerFor(Type) přetížení.