DataContractResolver.ResolveName Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Überschreiben diese Methode, um den angegebenen xsi:type
-Name und -Namespace bei der Deserialisierung einem Datenvertragstyp zuzuordnen.
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
Der zuzuordnende xsi:type
-Name.
- typeNamespace
- String
Der zuzuordnende xsi:type
-Namespace.
- declaredType
- Type
Der im Datenvertrag deklarierte Typ.
- knownTypeResolver
- DataContractResolver
Der Resolver des bekannten Typs.
Gibt zurück
Der Typ, dem der xsi:type
-Name und -Namespace zugeordnet ist.
Beispiele
Im folgenden Beispiel wird eine Implementierung der ResolveName-Methode veranschaulicht.
// 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;
}
}
Hinweise
Wenn Sie die Logik zur Auflösung bekannter Typen in der Implementierung verwenden möchten, wird ein Verweis darauf als knownTypeResolver
-Parameter übergeben.