Bagikan melalui


ValueSerializer.GetSerializerFor Metode

Definisi

ValueSerializer Mendapatkan untuk objek .

Overload

GetSerializerFor(PropertyDescriptor)

Mendapatkan yang ValueSerializer dideklarasikan untuk properti, dengan meneruskan deskriptor properti CLR untuk properti .

GetSerializerFor(Type)

Mendapatkan yang ValueSerializer dideklarasikan untuk jenis yang ditentukan.

GetSerializerFor(PropertyDescriptor, IValueSerializerContext)

Mendapatkan yang ValueSerializer dideklarasikan untuk properti yang ditentukan, menggunakan konteks yang ditentukan.

GetSerializerFor(Type, IValueSerializerContext)

Mendapatkan yang ValueSerializer dideklarasikan untuk jenis yang ditentukan, menggunakan konteks yang ditentukan.

GetSerializerFor(PropertyDescriptor)

Mendapatkan yang ValueSerializer dideklarasikan untuk properti, dengan meneruskan deskriptor properti CLR untuk properti .

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

Deskriptor properti CLR untuk properti yang akan diserialisasikan.

Mengembalikan

Serializer yang terkait dengan properti yang ditentukan. Dapat mengembalikan null.

Pengecualian

descriptoradalah null.

Keterangan

ValueSerializer untuk properti, atau untuk jenis yang digunakan sebagai nilai untuk properti, ditunjukkan dengan menerapkan ValueSerializerAttribute atribut pada properti atau deklarasi jenis. Metode GetSerializerFor ini adalah metode utilitas yang membaca informasi sistem jenis CLR dan mengembalikan kelas baru ValueSerializer berdasarkan atribut jika ditemukan pada properti , atau kemudian jika ditemukan pada jenis properti. null mungkin dikembalikan jika tidak ada serializer tersebut. null mungkin juga dikembalikan jika jenis atau properti sengaja dikaitkan dengan nilai ValueSerializerAttributenull .

Mode lain yang GetSerializerFor mendukung adalah mengembalikan kelas internal TypeConverterValueSerializer , yang merupakan ValueSerializer implementasi yang membungkus TypeConverter dan menerjemahkan Convert metode ke Convert*String metode (misalnya TypeConverter.ConvertTo dipanggil dengan input jenis String , dan diterjemahkan ke ConvertToString. Ini dilakukan hanya dalam kasus di mana semua hal berikut ini benar:

Catatan

Berikut ini adalah kasus khusus: DateTime jenis mengembalikan DateTimeValueSerializer; String jenis mengembalikan serializer internal tetapi fungsi (StringValueSerializer).

Berlaku untuk

GetSerializerFor(Type)

Mendapatkan yang ValueSerializer dideklarasikan untuk jenis yang ditentukan.

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

Jenis untuk mendapatkan ValueSerializer untuk.

Mengembalikan

Serializer yang terkait dengan jenis yang ditentukan. Dapat mengembalikan null.

Pengecualian

typeadalah null.

Keterangan

ValueSerializer Untuk jenis ditunjukkan dengan menerapkan ValueSerializerAttribute atribut pada deklarasi jenis. Metode GetSerializerFor ini adalah metode utilitas yang membaca informasi sistem jenis CLR dan mengembalikan kelas baru ValueSerializer berdasarkan atribut jika ditemukan pada yang ditentukan type. null mungkin dikembalikan jika tidak ada serializer tersebut. null mungkin juga dikembalikan jika jenis sengaja dikaitkan dengan nilai ValueSerializerAttributenull .

Mode lain yang GetSerializerFor mendukung adalah mengembalikan kelas internal TypeConverterValueSerializer , yang merupakan ValueSerializer implementasi yang membungkus TypeConverter dan menerjemahkan Convert metode ke Convert*String metode (misalnya TypeConverter.ConvertTo dipanggil dengan input jenis String , dan diterjemahkan ke ConvertToString. Ini dilakukan hanya dalam kasus di mana semua hal berikut ini benar:

Catatan

Berikut ini adalah kasus khusus: DateTime jenis mengembalikan DateTimeValueSerializer; String jenis mengembalikan serializer internal tetapi fungsi (StringValueSerializer).

Berlaku untuk

GetSerializerFor(PropertyDescriptor, IValueSerializerContext)

Mendapatkan yang ValueSerializer dideklarasikan untuk properti yang ditentukan, menggunakan konteks yang ditentukan.

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

Deskriptor untuk properti yang akan diserialisasikan.

context
IValueSerializerContext

Informasi konteks yang digunakan untuk konversi.

Mengembalikan

Serializer yang terkait dengan properti yang ditentukan.

Pengecualian

descriptoradalah null.

Keterangan

Daripada mengandalkan murni pada atribut yang dilaporkan dalam sistem jenis CLR, kelebihan beban ini menggunakan context sebagai layanan, dan memanggil implementasi layanan .IValueSerializerContext.GetValueSerializerFor Implementasi IValueSerializerContext.GetValueSerializerFor biasanya juga akan mengandalkan descriptor, tetapi mungkin menerapkan perilaku khusus untuk konteks tertentu.

Metode ini harus dipanggil ketika pemanggil memiliki yang tersedia IValueSerializerContext dari layanan. Ini akan memastikan bahwa yang benar ValueSerializer dikembalikan untuk konteks tertentu.

Jika konteks kembali null dari IValueSerializerContext.GetValueSerializerFor konteks untuk yang Anda tentukan descriptor, atau jika konteks yang Anda tentukan adalah null, maka perilaku identik dengan memanggil GetSerializerFor(PropertyDescriptor) kelebihan beban.

Berlaku untuk

GetSerializerFor(Type, IValueSerializerContext)

Mendapatkan yang ValueSerializer dideklarasikan untuk jenis yang ditentukan, menggunakan konteks yang ditentukan.

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

Jenis untuk mendapatkan ValueSerializer untuk.

context
IValueSerializerContext

Informasi konteks yang digunakan untuk konversi.

Mengembalikan

Serializer yang terkait dengan jenis yang ditentukan.

Pengecualian

typeadalah null.

Keterangan

Daripada mengandalkan murni pada atribut yang dilaporkan dalam sistem jenis CLR, kelebihan beban ini menggunakan context sebagai layanan, dan memanggil implementasi layanan .IValueSerializerContext.GetValueSerializerFor Implementasi IValueSerializerContext.GetValueSerializerFor biasanya juga akan mengandalkan type, tetapi mungkin menerapkan perilaku khusus untuk konteks tertentu.

Metode ini harus dipanggil ketika pemanggil memiliki yang tersedia IValueSerializerContext dari layanan. Ini akan memastikan bahwa yang benar ValueSerializer dikembalikan untuk konteks tertentu.

Jika konteks kembali null dari IValueSerializerContext.GetValueSerializerFor konteks untuk yang Anda tentukan type, atau jika konteks yang Anda tentukan adalah null, maka perilaku identik dengan memanggil GetSerializerFor(Type) kelebihan beban.

Berlaku untuk