ValueSerializer.GetSerializerFor Metoda

Definice

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:

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:

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

Platí pro