Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Método Type.GetInterfaceMap (Type)

 

Publicado: octubre de 2016

Devuelve una asignación de interfaz para el tipo de interfaz especificado.

Espacio de nombres:   System
Ensamblado:  mscorlib (en mscorlib.dll)

[ComVisibleAttribute(true)]
public virtual InterfaceMapping GetInterfaceMap(
	Type interfaceType
)

Parámetros

interfaceType
Type: System.Type

Tipo de interfaz para el que recuperar una asignación.

Valor devuelto

Type: System.Reflection.InterfaceMapping

Objeto que representa la asignación de interfaz para interfaceType.

Exception Condition
ArgumentException

El tipo actual no implementa interfaceType.

-o-

El parámetro interfaceType no hace referencia a una interfaz.

-o-

interfaceType es una interfaz genérica y el tipo actual es un tipo de matriz.

ArgumentNullException

El valor de interfaceType es null.

InvalidOperationException

El Type actual representa un parámetro de tipo genérico; es decir, IsGenericParameter es true.

NotSupportedException

No se admite el método invocado en la clase base. Las clases derivadas deben proporcionar una implementación.

El mapa de interfaz indica cómo se asigna una interfaz a los miembros reales en una clase que implementa esa interfaz.

Si la actual Type representa un tipo genérico construido, tipo de parámetros se sustituyen por los argumentos de tipo adecuado en los elementos de la InterfaceMapping devuelto por este método.

El ejemplo siguiente se llama el GetInterfaceMap método para determinar cómo el IFormatProvider interfaz se asigna a CultureInfo métodos y cómo el IAppDomainSetup interfaz se asigna a AppDomainSetup propiedades. Tenga en cuenta que, dado el IAppDomainSetup interfaz define un conjunto de propiedades, el valor devuelto InterfaceMapping objeto incluye independiente MethodInfo objetos para los descriptores de acceso de set y get de una propiedad.

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

.NET Framework
Disponible desde 1.1
Silverlight
Disponible desde 2.0
Windows Phone Silverlight
Disponible desde 7.0
Volver al principio
Mostrar: