ValueSerializer.GetSerializerFor Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ruft den ValueSerializer für ein Objekt ab.
Überlädt
GetSerializerFor(PropertyDescriptor) |
Ruft den ValueSerializer ab, der für eine Eigenschaft deklariert ist, indem ein CLR-Eigenschaftendeskriptor für die Eigenschaft übergeben wird. |
GetSerializerFor(Type) |
Ruft den ValueSerializer ab, der für den angegebenen Typ deklariert wurde. |
GetSerializerFor(PropertyDescriptor, IValueSerializerContext) |
Ruft mit dem angegebenen Kontext den ValueSerializer ab, der für die angegebene Eigenschaft deklariert ist. |
GetSerializerFor(Type, IValueSerializerContext) |
Ruft mit dem angegebenen Kontext den ValueSerializer ab, der für den angegebenen Typ deklariert ist. |
GetSerializerFor(PropertyDescriptor)
Ruft den ValueSerializer ab, der für eine Eigenschaft deklariert ist, indem ein CLR-Eigenschaftendeskriptor für die Eigenschaft übergeben wird.
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
Parameter
- descriptor
- PropertyDescriptor
Der CLR-Eigenschaftendeskriptor für die Eigenschaft, die serialisiert werden soll.
Gibt zurück
Das Serialisierungsprogramm, das der angegebenen Eigenschaft zugeordnet ist. Gibt möglicherweise null
zurück.
Ausnahmen
descriptor
ist null
Hinweise
Ein ValueSerializer für eine Eigenschaft oder für einen Typ, der als Wert für eine Eigenschaft verwendet wird, wird durch Anwenden des Attributs auf die ValueSerializerAttribute Eigenschafts- oder Typdeklaration angegeben. Die GetSerializerFor -Methode ist eine Hilfsprogrammmethode, die die CLR-Typsysteminformationen liest und eine neue ValueSerializer Klasse basierend auf dem Attribut zurückgibt, wenn sie für die -Eigenschaft gefunden wird, oder dann, wenn sie für den Typ der Eigenschaft gefunden wird.
null
kann zurückgegeben werden, wenn kein solches Serialisierungsprogramm vorhanden ist.
null
kann auch zurückgegeben werden, wenn einem Typ oder einer Eigenschaft bewusst ein NULL-Wert ValueSerializerAttributezugewiesen wird.
Ein weiterer Modus, der unterstützt, GetSerializerFor ist das Zurückgeben der internen TypeConverterValueSerializer
Klasse. Hierbei handelt es sich um eine ValueSerializer Implementierung, die eine TypeConverter umschließt und die Convert
Methoden in Convert*String
Methoden übersetzt (für instance TypeConverter.ConvertTo mit der Eingabe des String Typs aufgerufen wird und in ConvertToStringübersetzt. Dies geschieht nur in Fällen, in denen alle folgenden Punkte zutrifft:
Ein TypeConverterAttribute befindet sich in der relevanten Eigenschaft oder dem Typ der relevanten Eigenschaft.
Die angegebene TypeConverter kann erfolgreich erstellt werden.
Die TypeConverter gibt für TypeConverter.ConvertTozurück
true
, die als Verweis auf den String Typ bezeichnet wird.Die TypeConverter gibt für TypeConverter.CanConvertTozurück
true
, die als Verweis auf den String Typ bezeichnet wird.Die TypeConverter gibt für TypeConverter.CanConvertFromzurück
true
, die als Verweis auf den String Typ bezeichnet wird.
Hinweis
Im Folgenden sind Sonderfälle aufgeführt: DateTime Typen geben einen zurück DateTimeValueSerializer. String Typen geben einen internen, aber funktionalen Serialisierer (StringValueSerializer
) zurück.
Gilt für:
GetSerializerFor(Type)
Ruft den ValueSerializer ab, der für den angegebenen Typ deklariert wurde.
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
Parameter
- type
- Type
Der Typ, für den der ValueSerializer abgerufen werden soll.
Gibt zurück
Das Serialisierungsprogramm, das dem angegebenen Typ zugeordnet ist. Gibt möglicherweise null
zurück.
Ausnahmen
type
ist null
.
Hinweise
Ein ValueSerializer für einen Typ wird durch Anwenden des ValueSerializerAttribute Attributs auf die Typdeklaration angegeben. Die GetSerializerFor -Methode ist eine Hilfsprogrammmethode, die die CLR-Typsysteminformationen liest und eine neue ValueSerializer Klasse basierend auf dem -Attribut zurückgibt, wenn auf dem angegebenen type
gefunden wird.
null
kann zurückgegeben werden, wenn kein solches Serialisierungsprogramm vorhanden ist.
null
kann auch zurückgegeben werden, wenn einem Typ absichtlich ein NULL-Wert ValueSerializerAttributezugewiesen wird.
Ein weiterer Modus, der unterstützt, GetSerializerFor ist das Zurückgeben der internen TypeConverterValueSerializer
Klasse. Hierbei handelt es sich um eine ValueSerializer Implementierung, die eine TypeConverter umschließt und die Convert
Methoden in Convert*String
Methoden übersetzt (für instance TypeConverter.ConvertTo mit der Eingabe des String Typs aufgerufen wird und in ConvertToStringübersetzt. Dies geschieht nur in Fällen, in denen alle folgenden Punkte zutrifft:
Ein TypeConverterAttribute befindet sich in
type
.Die angegebene TypeConverter kann erfolgreich erstellt werden.
Die TypeConverter gibt für TypeConverter.ConvertTozurück
true
, die als Verweis auf den String Typ bezeichnet wird.Die TypeConverter gibt für TypeConverter.CanConvertTozurück
true
, die als Verweis auf den String Typ bezeichnet wird.Die TypeConverter gibt für TypeConverter.CanConvertFromzurück
true
, die als Verweis auf den String Typ bezeichnet wird.
Hinweis
Im Folgenden sind Sonderfälle aufgeführt: DateTime Typen geben einen zurück DateTimeValueSerializer. String Typen geben einen internen, aber funktionalen Serialisierer (StringValueSerializer
) zurück.
Gilt für:
GetSerializerFor(PropertyDescriptor, IValueSerializerContext)
Ruft mit dem angegebenen Kontext den ValueSerializer ab, der für die angegebene Eigenschaft deklariert ist.
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
Parameter
- descriptor
- PropertyDescriptor
Der Deskriptor für die Eigenschaft, die serialisiert werden soll.
- context
- IValueSerializerContext
Die für die Konvertierung verwendeten Kontextinformationen.
Gibt zurück
Das Serialisierungsprogramm, das der angegebenen Eigenschaft zugeordnet ist.
Ausnahmen
descriptor
ist null
.
Hinweise
Anstatt sich nur auf Attribute zu verlassen, die im CLR-Typsystem gemeldet werden, verwendet diese Überladung den context
-as-a-Dienst und ruft die Implementierung des Diensts auf IValueSerializerContext.GetValueSerializerFor. Die IValueSerializerContext.GetValueSerializerFor Implementierung basiert in der Regel auch auf dem descriptor
, kann jedoch spezielles Verhalten für bestimmte Kontexte implementieren.
Diese Methode sollte aufgerufen werden, wenn der Aufrufer über einen Dienst verfügbar IValueSerializerContext ist. Dadurch wird sichergestellt, dass das richtige ValueSerializer für den spezifischen Kontext zurückgegeben wird.
Wenn der Kontext von seinem IValueSerializerContext.GetValueSerializerFor für den angegebenen descriptor
zurückgibt null
oder der von Ihnen angegebene Kontext istnull
, ist das Verhalten mit dem Aufrufen der GetSerializerFor(PropertyDescriptor) Überladung identisch.
Gilt für:
GetSerializerFor(Type, IValueSerializerContext)
Ruft mit dem angegebenen Kontext den ValueSerializer ab, der für den angegebenen Typ deklariert ist.
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
Parameter
- type
- Type
Der Typ, für den der ValueSerializer abgerufen werden soll.
- context
- IValueSerializerContext
Die für die Konvertierung verwendeten Kontextinformationen.
Gibt zurück
Das Serialisierungsprogramm, das dem angegebenen Typ zugeordnet ist.
Ausnahmen
type
ist null
.
Hinweise
Anstatt sich nur auf Attribute zu verlassen, die im CLR-Typsystem gemeldet werden, verwendet diese Überladung den context
-as-a-Dienst und ruft die Implementierung des Diensts auf IValueSerializerContext.GetValueSerializerFor. Die IValueSerializerContext.GetValueSerializerFor Implementierung basiert in der Regel auch auf dem type
, kann jedoch spezielles Verhalten für bestimmte Kontexte implementieren.
Diese Methode sollte aufgerufen werden, wenn der Aufrufer über einen Dienst verfügbar IValueSerializerContext ist. Dadurch wird sichergestellt, dass das richtige ValueSerializer für den spezifischen Kontext zurückgegeben wird.
Wenn der Kontext von seinem IValueSerializerContext.GetValueSerializerFor für den angegebenen type
zurückgibt null
oder der von Ihnen angegebene Kontext istnull
, ist das Verhalten mit dem Aufrufen der GetSerializerFor(Type) Überladung identisch.