Freigeben über


ValueSerializer.GetSerializerFor Methode

Definition

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:

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 typegefunden 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:

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 descriptorzurü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 typezurückgibt null oder der von Ihnen angegebene Kontext istnull, ist das Verhalten mit dem Aufrufen der GetSerializerFor(Type) Überladung identisch.

Gilt für: