Type.GetInterfaceMap(Type) Type.GetInterfaceMap(Type) Type.GetInterfaceMap(Type) Type.GetInterfaceMap(Type) Method

Definition

Gibt eine Schnittstellenzuordnung für den angegebenen Schnittstellentyp zurück.Returns an interface mapping for the specified interface type.

public:
 virtual System::Reflection::InterfaceMapping GetInterfaceMap(Type ^ interfaceType);
[System.Runtime.InteropServices.ComVisible(true)]
public virtual System.Reflection.InterfaceMapping GetInterfaceMap (Type interfaceType);
abstract member GetInterfaceMap : Type -> System.Reflection.InterfaceMapping
override this.GetInterfaceMap : Type -> System.Reflection.InterfaceMapping
Public Overridable Function GetInterfaceMap (interfaceType As Type) As InterfaceMapping

Parameter

interfaceType
Type Type Type Type

Der Schnittstellentyp, für den eine Zuordnung abgerufen werden soll.The interface type to retrieve a mapping for.

Gibt zurück

Ein Objekt, das die Schnittstellenzuordnung für interfaceType darstellt.An object that represents the interface mapping for interfaceType.

Implementiert

Ausnahmen

interfaceType ist nicht durch den aktuellen Typ implementiert.interfaceType is not implemented by the current type.

- oder --or- Das interfaceType-Argument verweist nicht auf eine Schnittstelle.The interfaceType argument does not refer to an interface.

- oder --or-

Die aktuelle Instanz oder das interfaceType-Argument sind offene generische Typen, d.h. die ContainsGenericParameters-Eigenschaft gibt true zurück.The current instance or interfaceType argument is an open generic type; that is, the ContainsGenericParameters property returns true.

- oder --or-

interfaceType ist eine generische Schnittstelle, und der aktuelle Typ ist ein Arraytyp.interfaceType is a generic interface, and the current type is an array type.

Der aktuelle Type entspricht einem generischen Typparameter, d. h., IsGenericParameter ist gleich true.The current Type represents a generic type parameter; that is, IsGenericParameter is true.

Die aufgerufene Methode wird in der Basisklasse nicht unterstützt.The invoked method is not supported in the base class. Abgeleitete Klassen müssen eine Implementation angeben.Derived classes must provide an implementation.

Beispiele

Im folgenden Beispiel wird die GetInterfaceMap -Methode aufgerufen, um IFormatProvider zu bestimmen, CultureInfo wie die-Schnittstelle IAppDomainSetup Methoden zugeordnet wird AppDomainSetup und wie die-Schnittstelle Eigenschaften zugeordnet wird.The following example calls the GetInterfaceMap method to determine how the IFormatProvider interface maps to CultureInfo methods, and how the IAppDomainSetup interface maps to AppDomainSetup properties. Beachten Sie, dass das IAppDomainSetup zurückgegebene InterfaceMapping Objekt separate MethodInfo Objekte für Get-und Set-Accessoren einer Eigenschaft enthält, da die Schnittstelle eine Reihe von Eigenschaften definiert.Note that, because the IAppDomainSetup interface defines a set of properties, the returned InterfaceMapping object includes separate MethodInfo objects for a property's get and set accessors.

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
Imports System.Globalization
Imports System.Reflection

Module Example
   Public Sub Main()
      Dim int() As Type = { GetType(IFormatProvider), GetType(IAppDomainSetup) }
      Dim impl() As Type = { GetType(CultureInfo), GetType(AppDomainSetup) }
      
      For ctr As Integer = 0 To int.Length - 1
         ShowInterfaceMapping(int(ctr), impl(ctr))
      Next
   End Sub
   
   Private Sub ShowInterfaceMapping(intType As Type, implType As Type)
      Dim map As InterfaceMapping = implType.GetInterfaceMap(intType)
      Console.WriteLine("Mapping of {0} to {1}: ", map.InterfaceType, map.TargetType)
      For ctr As Integer = 0 To map.InterfaceMethods.Length - 1
         Dim im As MethodInfo = map.InterfaceMethods(ctr)
         Dim tm As MethodInfo = map.TargetMethods(ctr)
         Console.WriteLine("   {0} --> {1}", im.Name,tm.Name)
      Next
      Console.WriteLine()
   End Sub
End Module
' 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

Hinweise

Die Schnittstellen Zuordnung gibt an, wie eine Schnittstelle den tatsächlichen Membern einer Klasse zugeordnet wird, die diese Schnittstelle implementiert.The interface map denotes how an interface is mapped into the actual members on a class that implements that interface.

Wenn der aktuelle Type einen konstruierten generischen Typ darstellt, werden Typparameter durch die entsprechenden Typargumente in den InterfaceMapping Elementen von ersetzt, die von dieser Methode zurückgegeben werden.If the current Type represents a constructed generic type, type parameters are replaced by the appropriate type arguments in the elements of the InterfaceMapping returned by this method.

Gilt für:

Siehe auch