ImportedFromTypeLibAttribute-Klasse
Veröffentlicht: Oktober 2016
Gibt an, dass die in einer Assembly definierten Typen ursprünglich in einer Typbibliothek definiert wurden.
Namespace: System.Runtime.InteropServices
Assembly: mscorlib (in mscorlib.dll)
Vererbungshierarchie
System.Object
System.Attribute
System.Runtime.InteropServices.ImportedFromTypeLibAttribute
Syntax
[AttributeUsageAttribute(AttributeTargets.Assembly, Inherited = false)]
[ComVisibleAttribute(true)]
public sealed class ImportedFromTypeLibAttribute : Attribute
[AttributeUsageAttribute(AttributeTargets::Assembly, Inherited = false)]
[ComVisibleAttribute(true)]
public ref class ImportedFromTypeLibAttribute sealed : Attribute
[<Sealed>]
[<AttributeUsageAttribute(AttributeTargets.Assembly, Inherited = false)>]
[<ComVisibleAttribute(true)>]
type ImportedFromTypeLibAttribute =
class
inherit Attribute
end
<AttributeUsageAttribute(AttributeTargets.Assembly, Inherited := False)>
<ComVisibleAttribute(True)>
Public NotInheritable Class ImportedFromTypeLibAttribute
Inherits Attribute
Konstruktoren
Name | Beschreibung | |
---|---|---|
ImportedFromTypeLibAttribute(String) | Initialisiert eine neue Instanz der der ImportedFromTypeLibAttribute Klasse mit dem Namen der ursprünglichen Typbibliotheksdatei an. |
Eigenschaften
Name | Beschreibung | |
---|---|---|
TypeId | Ruft bei Implementierung in einer abgeleiteten Klasse einen eindeutigen Bezeichner für dieses Attribute ab.(Geerbt von „Attribute“.) |
|
Value | Ruft den Namen der ursprünglichen Typbibliotheksdatei an. |
Methoden
Name | Beschreibung | |
---|---|---|
Equals(Object) | Diese API unterstützt die Produkt Infrastruktur und sollte nicht direkt aus dem Code verwendet werden. Gibt einen Wert zurück, der angibt, ob diese Instanz gleich einem angegebenen Objekt ist.(Geerbt von „Attribute“.) |
|
GetHashCode() | Gibt den Hashcode für diese Instanz zurück.(Geerbt von „Attribute“.) |
|
GetType() | Ruft den Type der aktuellen Instanz ab.(Geerbt von „Object“.) |
|
IsDefaultAttribute() | Gibt beim Überschreiben in einer abgeleiteten Klasse an, ob der Wert der Instanz der Standardwert für die abgeleitete Klasse ist.(Geerbt von „Attribute“.) |
|
Match(Object) | Ruft beim Überschreiben in einer abgeleiteten Klasse gibt einen Wert, der angibt, ob diese Instanz gleich ein angegebenen Objekt ist.(Geerbt von „Attribute“.) |
|
ToString() | Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.(Geerbt von „Object“.) |
Explizite Schnittstellenimplementierungen
Name | Beschreibung | |
---|---|---|
_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) | Ordnet eine Reihe von Namen einer entsprechenden Reihe von Dispatchbezeichnern zu.(Geerbt von „Attribute“.) |
|
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) | Ruft die Typinformationen für ein Objekt ab, mit deren Hilfe die Typinformationen für eine Schnittstelle abgerufen werden können.(Geerbt von „Attribute“.) |
|
_Attribute.GetTypeInfoCount(UInt32) | Ruft die Anzahl der Schnittstellen mit Typinformationen ab, die von einem Objekt bereitgestellt werden (0 oder 1).(Geerbt von „Attribute“.) |
|
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) | Stellt den Zugriff auf von einem Objekt verfügbar gemachte Eigenschaften und Methoden bereit.(Geerbt von „Attribute“.) |
Hinweise
Sie können dieses Attribut auf Assemblys anwenden, obwohl die Tlbimp.exe (Type Library Importer) gilt es in der Regel für Sie bei der es eine Typbibliothek.
Die primäre Verwendung des Attributs ist die ursprüngliche Quelle der Typinformationen zu erfassen. Beispielsweise können Sie A.tlb als Interop-Assembly A.dll importieren und Assembly B.dll auf A.dll verweisen müssen. Beim Exportieren von B.dll nach B.tlb bewirkt dieses Attribut die Verweise in B.tlb, die auf A.dll stattdessen auf A.tlb zeigen. Dies sollte nicht mit verwechselt werden die ComImportAttribute, der angibt, dass ein einzelner Typ in COM implementiert wird
Beispiele
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;
}
}
}
Imports System
Imports System.Reflection
Imports System.Runtime.InteropServices
Module A
Public Function IsCOMAssembly(ByVal a As System.Reflection.Assembly) As Boolean
Dim AsmAttributes As Object() = a.GetCustomAttributes(GetType(ImportedFromTypeLibAttribute), True)
If AsmAttributes.Length = 1 Then
Dim imptlb As ImportedFromTypeLibAttribute = AsmAttributes(0)
Dim strImportedFrom As String = 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
End If
' This is not a COM assembly.
Console.WriteLine("Assembly " + a.FullName + " is not imported from COM")
Return False
End Function
End Module
using namespace System;
using namespace System::Reflection;
using namespace System::Runtime::InteropServices;
class ClassA
{
private:
static bool IsCOMAssembly( Assembly^ a )
{
array<Object^>^AsmAttributes = a->GetCustomAttributes( ImportedFromTypeLibAttribute::typeid, true );
if ( AsmAttributes->Length > 0 )
{
ImportedFromTypeLibAttribute^ imptlb = dynamic_cast<ImportedFromTypeLibAttribute^>(AsmAttributes[ 0 ]);
String^ strImportedFrom = imptlb->Value;
// Print out the name of the DLL from which the assembly is imported.
Console::WriteLine( "Assembly {0} is imported from {1}", a->FullName, strImportedFrom );
return true;
}
// This is not a COM assembly.
Console::WriteLine( "Assembly {0} is not imported from COM", a->FullName );
return false;
}
};
Versionsinformationen
.NET Framework
Verfügbar seit 1.1
Threadsicherheit
Alle öffentlichen statischen Member ( Shared in Visual Basic) dieses Typs sind threadsicher. Die Threadsicherheit für Instanzmember ist nicht garantiert.
Siehe auch
ComImportAttribute
System.Runtime.InteropServices-Namespace
Tlbimp.exe (Type Library Importer)
Zurück zum Anfang