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.
Gilt für:
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für