ValueSerializer.GetSerializerFor Metod

Definition

ValueSerializer Hämtar för ett objekt.

Överlagringar

Name Description
GetSerializerFor(PropertyDescriptor)

Hämtar den ValueSerializer deklarerade för en egenskap genom att skicka en CLR-egenskapsbeskrivning för egenskapen.

GetSerializerFor(Type)

Hämtar den ValueSerializer deklarerade för den angivna typen.

GetSerializerFor(PropertyDescriptor, IValueSerializerContext)

Hämtar den ValueSerializer deklarerade för den angivna egenskapen med hjälp av den angivna kontexten.

GetSerializerFor(Type, IValueSerializerContext)

Hämtar den ValueSerializer deklarerade för den angivna typen med hjälp av den angivna kontexten.

GetSerializerFor(PropertyDescriptor)

Hämtar den ValueSerializer deklarerade för en egenskap genom att skicka en CLR-egenskapsbeskrivning för egenskapen.

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

Parametrar

descriptor
PropertyDescriptor

CLR-egenskapsbeskrivningen för egenskapen som ska serialiseras.

Returer

Serialiseraren som är associerad med den angivna egenskapen. Kan returnera null.

Undantag

descriptor är null.

Kommentarer

A ValueSerializer för en egenskap, eller för en typ som används som värde för en egenskap, anges genom att attributet tillämpas ValueSerializerAttribute på egenskapen eller typdeklarationen. Metoden GetSerializerFor är en verktygsmetod som läser systeminformationen för CLR-typen och returnerar en ny ValueSerializer klass baserat på attributet om det hittas på egenskapen, eller om det hittas på egenskapens typ. null returneras om det inte finns någon sådan serialiserare. null kan också returneras om en typ eller egenskap avsiktligt tillskrivs ett null-värde ValueSerializerAttribute.

Ett annat läge som GetSerializerFor stöder är att returnera den interna TypeConverterValueSerializer klassen, vilket är en ValueSerializer implementering som omsluter TypeConverter en Convert och översätter metoderna till Convert*String metoder (till exempel TypeConverter.ConvertTo anropas med indata av String typen och översätts till ConvertToString. Detta görs endast i de fall där alla följande är sanna:

Note

Följande är specialfall: DateTime typer returnerar en DateTimeValueSerializer; String typer returnerar en intern men funktionell serialiserare (StringValueSerializer).

Gäller för

GetSerializerFor(Type)

Hämtar den ValueSerializer deklarerade för den angivna typen.

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

Parametrar

type
Type

Den typ som ska hämtas ValueSerializer för.

Returer

Serialiseraren som är associerad med den angivna typen. Kan returnera null.

Undantag

type är null.

Kommentarer

A ValueSerializer för en typ anges genom att attributet tillämpas ValueSerializerAttribute på typdeklarationen. Metoden GetSerializerFor är en verktygsmetod som läser systeminformationen för CLR-typen och returnerar en ny ValueSerializer klass baserat på attributet om det hittas på den angivna type. null returneras om det inte finns någon sådan serialiserare. null kan också returneras om en typ avsiktligt tillskrivs ett null-värde ValueSerializerAttribute.

Ett annat läge som GetSerializerFor stöder är att returnera den interna TypeConverterValueSerializer klassen, vilket är en ValueSerializer implementering som omsluter TypeConverter en Convert och översätter metoderna till Convert*String metoder (till exempel TypeConverter.ConvertTo anropas med indata av String typen och översätts till ConvertToString. Detta görs endast i de fall där alla följande är sanna:

Note

Följande är specialfall: DateTime typer returnerar en DateTimeValueSerializer; String typer returnerar en intern men funktionell serialiserare (StringValueSerializer).

Gäller för

GetSerializerFor(PropertyDescriptor, IValueSerializerContext)

Hämtar den ValueSerializer deklarerade för den angivna egenskapen med hjälp av den angivna kontexten.

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

Parametrar

descriptor
PropertyDescriptor

Beskrivning för att egenskapen ska serialiseras.

context
IValueSerializerContext

Kontextinformation som används för konvertering.

Returer

Serialiseraren som är associerad med den angivna egenskapen.

Undantag

descriptor är null.

Kommentarer

I stället för att enbart förlita sig på attribut som rapporteras i CLR-typsystemet använder den här överlagringen context som en tjänst och anropar tjänstens implementering av IValueSerializerContext.GetValueSerializerFor. Implementeringen IValueSerializerContext.GetValueSerializerFor förlitar sig vanligtvis också på descriptor, men kan implementera särskilt beteende för vissa kontexter.

Den här metoden ska anropas när anroparen har en tillgänglig IValueSerializerContext från en tjänst. Detta säkerställer att rätt ValueSerializer returneras för den specifika kontexten.

Om kontexten returnerar null från dess IValueSerializerContext.GetValueSerializerFor för din angivna descriptor, eller om kontexten du anger är null, är beteendet identiskt med att anropa överbelastningen GetSerializerFor(PropertyDescriptor) .

Gäller för

GetSerializerFor(Type, IValueSerializerContext)

Hämtar den ValueSerializer deklarerade för den angivna typen med hjälp av den angivna kontexten.

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

Parametrar

type
Type

Den typ som ska hämtas ValueSerializer för.

context
IValueSerializerContext

Kontextinformation som används för konvertering.

Returer

Serialiseraren som är associerad med den angivna typen.

Undantag

type är null.

Kommentarer

I stället för att enbart förlita sig på attribut som rapporteras i CLR-typsystemet använder den här överlagringen context som en tjänst och anropar tjänstens implementering av IValueSerializerContext.GetValueSerializerFor. Implementeringen IValueSerializerContext.GetValueSerializerFor förlitar sig vanligtvis också på type, men kan implementera särskilt beteende för vissa kontexter.

Den här metoden ska anropas när anroparen har en tillgänglig IValueSerializerContext från en tjänst. Detta säkerställer att rätt ValueSerializer returneras för den specifika kontexten.

Om kontexten returnerar null från dess IValueSerializerContext.GetValueSerializerFor för din angivna type, eller om kontexten du anger är null, är beteendet identiskt med att anropa överbelastningen GetSerializerFor(Type) .

Gäller för