Lire en anglais

Partager via


Type.GetInterfaceMap(Type) Méthode

Définition

Retourne un mappage d'interface pour le type interface spécifié.

C#
public virtual System.Reflection.InterfaceMapping GetInterfaceMap (Type interfaceType);
C#
[System.Runtime.InteropServices.ComVisible(true)]
public virtual System.Reflection.InterfaceMapping GetInterfaceMap (Type interfaceType);

Paramètres

interfaceType
Type

Type d'interface pour lequel extraire un mappage.

Retours

Objet qui représente le mappage d'interface pour interfaceType.

Implémente

Attributs

Exceptions

interfaceType n’est pas implémenté par le type courant.

- ou -

L’argument interfaceType ne fait pas référence à une interface.

- ou -

L’instance actuelle ou l’argument interfaceTypeest un type générique ouvert (autrement dit, la propriété ContainsGenericParameters retourne true).

- ou -

interfaceType est une interface générique, et le type actuel est un type tableau.

interfaceType a la valeur null.

Le Type actuel représente un paramètre de type générique ; autrement dit, IsGenericParameter est true.

La méthode appelée n’est pas prise en charge dans la classe de base. Les classes dérivées doivent fournir une implémentation.

Exemples

L’exemple suivant appelle la GetInterfaceMap méthode pour déterminer comment l’interface IFormatProvider est mappée aux CultureInfo méthodes et comment l’interface IAppDomainSetup est mappée aux AppDomainSetup propriétés. Notez que, étant donné que l’interface IAppDomainSetup définit un ensemble de propriétés, l’objet retourné InterfaceMapping inclut des objets distincts MethodInfo pour les accesseurs get et set d’une propriété.

C#
using System;
using System.Globalization;
using System.Reflection;

public class Example
{
   public static void Main()
   {
      Type[] interf = { typeof(IFormatProvider), typeof(IAppDomainSetup) };
      Type[] impl = { typeof(CultureInfo), typeof(AppDomainSetup) };

      for (int ctr = 0; ctr < interf.Length; ctr++)
         ShowInterfaceMapping(interf[ctr], impl[ctr]);
   }

   private static void ShowInterfaceMapping(Type intType, Type implType)
   {
      InterfaceMapping map = implType.GetInterfaceMap(intType);
      Console.WriteLine("Mapping of {0} to {1}: ", map.InterfaceType, map.TargetType);
      for (int ctr = 0; ctr < map.InterfaceMethods.Length; ctr++) {
         MethodInfo im = map.InterfaceMethods[ctr];
         MethodInfo tm = map.TargetMethods[ctr];
         Console.WriteLine("   {0} --> {1}", im.Name,tm.Name);
      }
      Console.WriteLine();
   }
}
// The example displays the following output:
//    Mapping of System.IFormatProvider to System.Globalization.CultureInfo:
//       GetFormat --> GetFormat
//
//    Mapping of System.IAppDomainSetup to System.AppDomainSetup:
//       get_ApplicationBase --> get_ApplicationBase
//       set_ApplicationBase --> set_ApplicationBase
//       get_ApplicationName --> get_ApplicationName
//       set_ApplicationName --> set_ApplicationName
//       get_CachePath --> get_CachePath
//       set_CachePath --> set_CachePath
//       get_ConfigurationFile --> get_ConfigurationFile
//       set_ConfigurationFile --> set_ConfigurationFile
//       get_DynamicBase --> get_DynamicBase
//       set_DynamicBase --> set_DynamicBase
//       get_LicenseFile --> get_LicenseFile
//       set_LicenseFile --> set_LicenseFile
//       get_PrivateBinPath --> get_PrivateBinPath
//       set_PrivateBinPath --> set_PrivateBinPath
//       get_PrivateBinPathProbe --> get_PrivateBinPathProbe
//       set_PrivateBinPathProbe --> set_PrivateBinPathProbe
//       get_ShadowCopyDirectories --> get_ShadowCopyDirectories
//       set_ShadowCopyDirectories --> set_ShadowCopyDirectories
//       get_ShadowCopyFiles --> get_ShadowCopyFiles
//       set_ShadowCopyFiles --> set_ShadowCopyFiles

Remarques

La carte d’interface indique comment une interface est mappée aux membres réels d’une classe qui implémente cette interface.

Si le actuel Type représente un type générique construit, les paramètres de type sont remplacés par les arguments de type appropriés dans les éléments du InterfaceMapping retourné par cette méthode.

S’applique à

Produit Versions
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

Voir aussi