ValueSerializer.GetSerializerFor Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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:
Obiekt znajduje TypeConverterAttribute się w odpowiedniej właściwości lub typ odpowiedniej właściwości.
Wskazane TypeConverter można pomyślnie skonstruować.
Zwraca wartość TypeConverter
true
dla TypeConverter.ConvertTometody , nazywaną odwoływaniem się do String typu.Zwraca wartość TypeConverter
true
dla TypeConverter.CanConvertTometody , nazywaną odwoływaniem się do String typu.Zwraca wartość TypeConverter
true
dla TypeConverter.CanConvertFrommetody , nazywaną odwoływaniem się do String typu.
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 type
obiekcie .
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:
Znaleziono element TypeConverterAttribute na .
type
Wskazane TypeConverter można pomyślnie skonstruować.
Zwraca wartość TypeConverter
true
dla TypeConverter.ConvertTometody , nazywaną odwoływaniem się do String typu.Zwraca wartość TypeConverter
true
dla TypeConverter.CanConvertTometody , nazywaną odwoływaniem się do String typu.Zwraca wartość TypeConverter
true
dla TypeConverter.CanConvertFrommetody , nazywaną odwoływaniem się do String typu.
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 descriptor
obiekcie , 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 descriptor
kontekst 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 type
obiekcie , 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 type
kontekst to null
, zachowanie jest identyczne z wywołaniem GetSerializerFor(Type) przeciążenia.