DataContractResolver.ResolveName Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Ambil alih metode ini untuk memetakan nama dan namespace yang ditentukan xsi:type
ke jenis kontrak data selama deserialisasi.
public:
abstract Type ^ ResolveName(System::String ^ typeName, System::String ^ typeNamespace, Type ^ declaredType, System::Runtime::Serialization::DataContractResolver ^ knownTypeResolver);
public abstract Type ResolveName (string typeName, string typeNamespace, Type declaredType, System.Runtime.Serialization.DataContractResolver knownTypeResolver);
public abstract Type? ResolveName (string typeName, string? typeNamespace, Type? declaredType, System.Runtime.Serialization.DataContractResolver knownTypeResolver);
abstract member ResolveName : string * string * Type * System.Runtime.Serialization.DataContractResolver -> Type
Public MustOverride Function ResolveName (typeName As String, typeNamespace As String, declaredType As Type, knownTypeResolver As DataContractResolver) As Type
Parameter
- typeName
- String
Nama xsi:type
yang akan dipetakan.
- typeNamespace
- String
Namespace xsi:type
layanan yang akan dipetakan.
- declaredType
- Type
Jenis yang dinyatakan dalam kontrak data.
- knownTypeResolver
- DataContractResolver
Pemecah masalah jenis yang diketahui.
Mengembalikan
Jenis xsi:type
nama dan namespace layanan dipetakan.
Contoh
Contoh berikut menunjukkan implementasi ResolveName metode .
// Used at deserialization
// Allows users to map xsi:type name to any Type
public override Type ResolveName(string typeName, string typeNamespace, Type declaredType, DataContractResolver knownTypeResolver)
{
XmlDictionaryString tName;
XmlDictionaryString tNamespace;
if (dictionary.TryGetValue(typeName, out tName) && dictionary.TryGetValue(typeNamespace, out tNamespace))
{
return this.assembly.GetType(tNamespace.Value + "." + tName.Value);
}
else
{
return null;
}
}
Keterangan
Jika Anda ingin menggunakan logika resolusi jenis yang diketahui di dalam implementasi Anda, referensi ke sana diteruskan sebagai knownTypeResolver
parameter .