Exportar (0) Imprimir
Expandir todo

ImportedFromTypeLibAttribute (Clase)

Actualización: noviembre 2007

Indica que los tipos definidos en un ensamblado se definieron originalmente en una biblioteca de tipos.

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

[AttributeUsageAttribute(AttributeTargets.Assembly, Inherited = false)]
[ComVisibleAttribute(true)]
public sealed class ImportedFromTypeLibAttribute : Attribute
/** @attribute AttributeUsageAttribute(AttributeTargets.Assembly, Inherited = false) */
/** @attribute ComVisibleAttribute(true) */
public final class ImportedFromTypeLibAttribute extends Attribute
public final class ImportedFromTypeLibAttribute extends Attribute

Este atributo puede aplicarse a ensamblados, aunque Importador de la biblioteca de tipos (TlbImp.exe) suele aplicarlo al importar una biblioteca de tipos.

Este atributo se utiliza principalmente para capturar el origen primero de la información de tipos. Por ejemplo, A.tlb se puede importar como un ensamblado de interoperabilidad denominado A.dll y se puede hacer que el ensamblado B.dll haga referencia a A.dll. Al exportar B.dll a B.tlb, este atributo hace que las referencias de B.tlb que señalan a A.dll señalen en su lugar a A.tlb. No debe confundirse con ComImportAttribute, que especifica que un tipo individual se implemente en COM.

using System;
using System.Reflection;
using System.Runtime.InteropServices;

namespace A
{
	class ClassA
	{
		public static bool IsCOMAssembly( Assembly a )
		{
			object[] AsmAttributes = a.GetCustomAttributes( typeof( ImportedFromTypeLibAttribute ), true );
			if( AsmAttributes.Length > 0 )
			{
				ImportedFromTypeLibAttribute imptlb = ( ImportedFromTypeLibAttribute )AsmAttributes[0];
				string strImportedFrom  = imptlb.Value;
				    
				// Print out the the name of the DLL from which the assembly is imported.
				Console.WriteLine( "Assembly " + a.FullName + " is imported from " + strImportedFrom );
			
				return true;
			}  
			// This is not a COM assembly.
			Console.WriteLine( "Assembly " + a.FullName + " is not imported from COM" );
			return false;
		}
	}
}


import System.*;
import System.Reflection.*;
import System.Runtime.InteropServices.*;

class ClassA
{
    public static boolean IsCOMAssembly(Assembly a)
    {
        Object asmAttributes[] = a.GetCustomAttributes(
            ImportedFromTypeLibAttribute.class.ToType(), true);

        if (asmAttributes.length > 0) {
            ImportedFromTypeLibAttribute imptlb 
                = (ImportedFromTypeLibAttribute)(asmAttributes.get_Item(0));
            String strImportedFrom = imptlb.get_Value();

            // Print out the the name of the DLL from which 
			// the assembly is imported.
            Console.WriteLine("Assembly " + a.get_FullName() 
                + " is imported from " + strImportedFrom);
            return true;
        }
        // This is not a COM assembly.
        Console.WriteLine("Assembly " + a.get_FullName() 
            + " is not imported from COM");
        return false;
    } //IsCOMAssembly
} //ClassA


System.Object
  System.Attribute
    System.Runtime.InteropServices.ImportedFromTypeLibAttribute

Todos los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile para Smartphone, Windows Mobile para Pocket PC

.NET Framework y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

.NET Framework

Compatible con: 3.5, 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Compatible con: 3.5, 2.0

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft