ValueSerializer.GetSerializerFor Metoda

Definice

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:

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:

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í.

Platí pro