DataContractResolver.ResolveName Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Remplacez cette méthode pour mapper le nom et l'espace de noms xsi:type
spécifiés à un type de contrat de données pendant la désérialisation.
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
Paramètres
- typeName
- String
Nom xsi:type
à mapper.
- typeNamespace
- String
Espace de noms xsi:type
à mapper.
- declaredType
- Type
Type déclaré dans le contrat de données.
- knownTypeResolver
- DataContractResolver
Programme de résolution de type connu.
Retours
Type auquel le nom et l'espace de noms xsi:type
sont mappés.
Exemples
L'exemple suivant illustre une implémentation de la méthode ResolveName.
// 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;
}
}
Remarques
Si vous souhaitez utiliser la logique de résolution de type connu à l’intérieur de votre implémentation, une référence au type est passée comme paramètre knownTypeResolver
.