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
true
pro TypeConverter.ConvertTo, volanou odkazující na String typ.Vrátí TypeConverter hodnotu
true
pro TypeConverter.CanConvertTo, volanou odkazující na String typ.Vrátí TypeConverter hodnotu
true
pro 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 type
objektu .
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 .
type
Uvedené je TypeConverter možné úspěšně vytvořit.
Vrátí TypeConverter hodnotu
true
pro TypeConverter.ConvertTo, volanou odkazující na String typ.Vrátí TypeConverter hodnotu
true
pro TypeConverter.CanConvertTo, volanou odkazující na String typ.Vrátí TypeConverter hodnotu
true
pro 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é descriptor
nebo pokud kontext, který zadáte , je null
chová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é type
nebo pokud kontext, který zadáte , je null
chování stejné jako volání GetSerializerFor(Type) přetížení.