ValueSerializer.GetSerializerFor Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
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:
A TypeConverterAttribute finns på den relevanta egenskapen eller den relevanta egenskapens typ.
Angivet TypeConverter kan konstrueras.
TypeConverter Returnerar
trueför TypeConverter.ConvertTo, som kallas refererar till String typen.TypeConverter Returnerar
trueför TypeConverter.CanConvertTo, som kallas refererar till String typen.TypeConverter Returnerar
trueför TypeConverter.CanConvertFrom, som kallas refererar till String typen.
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:
En TypeConverterAttribute finns på
type.Angivet TypeConverter kan konstrueras.
TypeConverter Returnerar
trueför TypeConverter.ConvertTo, som kallas refererar till String typen.TypeConverter Returnerar
trueför TypeConverter.CanConvertTo, som kallas refererar till String typen.TypeConverter Returnerar
trueför TypeConverter.CanConvertFrom, som kallas refererar till String typen.
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) .