Udostępnij za pośrednictwem


ValueSerializer.GetSerializerFor Metoda

Definicja

Pobiera obiekt ValueSerializer dla obiektu.

Przeciążenia

GetSerializerFor(PropertyDescriptor)

ValueSerializer Pobiera zadeklarowaną właściwość, przekazując deskryptor właściwości CLR dla właściwości.

GetSerializerFor(Type)

Pobiera zadeklarowany ValueSerializer dla określonego typu.

GetSerializerFor(PropertyDescriptor, IValueSerializerContext)

Pobiera zadeklarowaną ValueSerializer właściwość dla określonej właściwości przy użyciu określonego kontekstu.

GetSerializerFor(Type, IValueSerializerContext)

Pobiera zadeklarowany ValueSerializer dla określonego typu przy użyciu określonego kontekstu.

GetSerializerFor(PropertyDescriptor)

ValueSerializer Pobiera zadeklarowaną właściwość, przekazując deskryptor właściwości CLR dla właściwości.

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

Deskryptor właściwości CLR do serializacji właściwości.

Zwraca

Serializator skojarzony z określoną właściwością. Może zwrócić wartość null.

Wyjątki

descriptor to null.

Uwagi

Dla ValueSerializer właściwości lub typu, który jest używany jako wartość właściwości, jest wskazywany przez zastosowanie atrybutu ValueSerializerAttribute we właściwości lub deklaracji typu. Metoda GetSerializerFor jest metodą narzędziową, która odczytuje informacje systemowe typu CLR i zwraca nową ValueSerializer klasę na podstawie atrybutu, jeśli zostanie znaleziona we właściwości, lub jeśli zostanie znaleziona na typie właściwości. null może zostać zwrócony, jeśli taki serializator nie istnieje. null może być również zwracany, jeśli typ lub właściwość jest celowo przypisywana z wartością ValueSerializerAttributenull.

Inny obsługiwany tryb GetSerializerFor zwraca klasę wewnętrzną TypeConverterValueSerializer , która jest implementacją ValueSerializer , która opakowuje TypeConverterConvert metody i tłumaczy metody na Convert*String metody (na przykład TypeConverter.ConvertTo jest wywoływana przy użyciu danych wejściowych String typu i tłumaczy na ConvertToString. Odbywa się to tylko w przypadkach, w których wszystkie następujące elementy są prawdziwe:

Uwaga

Poniżej przedstawiono specjalne przypadki: DateTime typy zwracają typ DateTimeValueSerializer; String typy zwracają wewnętrzny, ale funkcjonalny serializator (StringValueSerializer).

Dotyczy

GetSerializerFor(Type)

Pobiera zadeklarowany ValueSerializer dla określonego typu.

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, dla który ma być pobierany ValueSerializer .

Zwraca

Serializator skojarzony z określonym typem. Może zwrócić wartość null.

Wyjątki

type to null.

Uwagi

Typ ValueSerializer jest wskazywany przez zastosowanie atrybutu ValueSerializerAttribute w deklaracji typu. Metoda GetSerializerFor jest metodą narzędziową, która odczytuje informacje o systemie typu CLR i zwraca nową ValueSerializer klasę na podstawie atrybutu, jeśli zostanie znaleziona w określonym typeobiekcie . null może zostać zwrócony, jeśli taki serializator nie istnieje. null może być również zwracany, jeśli typ jest celowo przypisywany z wartością ValueSerializerAttributenull .

Inny obsługiwany tryb GetSerializerFor zwraca klasę wewnętrzną TypeConverterValueSerializer , która jest implementacją ValueSerializer , która opakowuje TypeConverterConvert metody i tłumaczy metody na Convert*String metody (na przykład TypeConverter.ConvertTo jest wywoływana przy użyciu danych wejściowych String typu i tłumaczy na ConvertToString. Odbywa się to tylko w przypadkach, w których wszystkie następujące elementy są prawdziwe:

Uwaga

Poniżej przedstawiono specjalne przypadki: DateTime typy zwracają typ DateTimeValueSerializer; String typy zwracają wewnętrzny, ale funkcjonalny serializator (StringValueSerializer).

Dotyczy

GetSerializerFor(PropertyDescriptor, IValueSerializerContext)

Pobiera zadeklarowaną ValueSerializer właściwość dla określonej właściwości przy użyciu określonego kontekstu.

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

Deskryptor właściwości do serializacji.

context
IValueSerializerContext

Informacje kontekstowe używane do konwersji.

Zwraca

Serializator skojarzony z określoną właściwością.

Wyjątki

descriptor to null.

Uwagi

Zamiast polegać wyłącznie na atrybutach zgłoszonych w systemie typów CLR, to przeciążenie używa context jako usługi i wywołuje implementację IValueSerializerContext.GetValueSerializerForusługi . Implementacja IValueSerializerContext.GetValueSerializerFor zwykle polegałaby również na descriptorobiekcie , ale może zaimplementować specjalne zachowanie dla niektórych kontekstów.

Ta metoda powinna być wywoływana, gdy obiekt wywołujący ma dostęp IValueSerializerContext do usługi. Zapewni to, że dla określonego kontekstu zostanie zwrócona poprawna ValueSerializer wartość.

Jeśli kontekst zostanie zwrócony null z IValueSerializerContext.GetValueSerializerFor określonego elementu , lub jeśli określony descriptorkontekst to null, zachowanie jest identyczne z wywołaniem GetSerializerFor(PropertyDescriptor) przeciążenia.

Dotyczy

GetSerializerFor(Type, IValueSerializerContext)

Pobiera zadeklarowany ValueSerializer dla określonego typu przy użyciu określonego kontekstu.

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, dla który ma być pobierany ValueSerializer .

context
IValueSerializerContext

Informacje kontekstowe używane do konwersji.

Zwraca

Serializator skojarzony z określonym typem.

Wyjątki

type to null.

Uwagi

Zamiast polegać wyłącznie na atrybutach zgłoszonych w systemie typów CLR, to przeciążenie używa context jako usługi i wywołuje implementację IValueSerializerContext.GetValueSerializerForusługi . Implementacja IValueSerializerContext.GetValueSerializerFor zwykle polegałaby również na typeobiekcie , ale może zaimplementować specjalne zachowanie dla niektórych kontekstów.

Ta metoda powinna być wywoływana, gdy obiekt wywołujący ma dostęp IValueSerializerContext do usługi. Zapewni to, że dla określonego kontekstu zostanie zwrócona poprawna ValueSerializer wartość.

Jeśli kontekst zostanie zwrócony null z IValueSerializerContext.GetValueSerializerFor określonego elementu , lub jeśli określony typekontekst to null, zachowanie jest identyczne z wywołaniem GetSerializerFor(Type) przeciążenia.

Dotyczy