Assembly-Klasse
Definiert eine Assembly, die ein wiederverwendbarer, in verschiedenen Versionen einsetzbarer und selbstbeschreibender Baustein einer Anwendung der Common Language Runtime (CLR) ist.
Namespace: System.Reflection
Assembly: mscorlib (in mscorlib.dll)
Syntax
'Declaration
<SerializableAttribute> _
<ClassInterfaceAttribute(ClassInterfaceType.None)> _
<ComVisibleAttribute(True)> _
Public Class Assembly
Implements _Assembly, IEvidenceFactory, ICustomAttributeProvider, ISerializable
'Usage
Dim instance As Assembly
[SerializableAttribute]
[ClassInterfaceAttribute(ClassInterfaceType.None)]
[ComVisibleAttribute(true)]
public class Assembly : _Assembly, IEvidenceFactory, ICustomAttributeProvider,
ISerializable
[SerializableAttribute]
[ClassInterfaceAttribute(ClassInterfaceType::None)]
[ComVisibleAttribute(true)]
public ref class Assembly : _Assembly, IEvidenceFactory, ICustomAttributeProvider,
ISerializable
/** @attribute SerializableAttribute() */
/** @attribute ClassInterfaceAttribute(ClassInterfaceType.None) */
/** @attribute ComVisibleAttribute(true) */
public class Assembly implements _Assembly, IEvidenceFactory,
ICustomAttributeProvider, ISerializable
SerializableAttribute
ClassInterfaceAttribute(ClassInterfaceType.None)
ComVisibleAttribute(true)
public class Assembly implements _Assembly, IEvidenceFactory,
ICustomAttributeProvider, ISerializable
Hinweise
Assemblys stellen die Infrastruktur zur Verfügung, die es der Laufzeit ermöglicht, den Inhalt einer Anwendung vollständig zu verstehen und die von der Anwendung definierten Versions- und Abhängigkeitsregeln zu erzwingen. Diese Konzepte sind ausschlaggebend für die Lösung von Versionsproblemen und für die vereinfachte Bereitstellung von Laufzeitanwendungen.
Beispiel
Im folgenden Codebeispiel werden die Methodensignaturen für jede Methode in einer Assembly aufgelistet.
' LoadInvoke loads MyAssembly.dll and lists the method
' information for each method. After compiling this class,
' run LoadInvoke.exe with the DisplayName for the assembly,
' as shown here:
' LoadInvoke MyAssembly
Imports System
Imports System.Reflection
Imports System.Security.Permissions
Public Class LoadInvoke
<PermissionSetAttribute(SecurityAction.Demand, Name:="FullTrust")> _
Public Shared Sub Main(ByVal args() As String)
Dim a As [Assembly] = [Assembly].Load(args(0))
Dim mytypes As Type() = a.GetTypes()
Dim flags As BindingFlags = BindingFlags.NonPublic Or BindingFlags.Public Or BindingFlags.Static Or _
BindingFlags.Instance Or BindingFlags.DeclaredOnly
Dim t As Type
For Each t In mytypes
Dim mi As MethodInfo() = t.GetMethods(flags)
Dim obj As [Object] = Activator.CreateInstance(t)
Dim m As MethodInfo
For Each m In mi
' Instead of invoking the methods,
' it's safer to initially just list them.
Console.WriteLine(m)
Next m
Next t
End Sub
End Class
// LoadInvoke loads MyAssembly.dll and lists the method
// information for each method. After compiling this class,
// run LoadInvoke.exe with the DisplayName for the assembly,
// as shown here:
// LoadInvoke MyAssembly
using System;
using System.Reflection;
using System.Security.Permissions;
public class LoadInvoke
{
[PermissionSetAttribute(SecurityAction.Demand, Name="FullTrust")]
public static void Main(string[] args)
{
Assembly a = Assembly.Load(args[0]);
Type[] mytypes = a.GetTypes();
BindingFlags flags = (BindingFlags.NonPublic | BindingFlags.Public |
BindingFlags.Static | BindingFlags.Instance | BindingFlags.DeclaredOnly);
foreach(Type t in mytypes)
{
MethodInfo[] mi = t.GetMethods(flags);
Object obj = Activator.CreateInstance(t);
foreach(MethodInfo m in mi)
{
// Instead of invoking the methods,
// it's safer to initially just list them.
Console.WriteLine(m);
}
}
}
}
' Use this class with the LoadInvoke program.
' Compile this class using vbc /t:library MyAssembly.vb
' to obtain MyAssembly.dll.
Imports System
Imports Microsoft.VisualBasic
Public Class MyAssembly
Public Sub MyMethod1()
Console.WriteLine("Invoking MyAssembly.MyMethod1")
End Sub 'MyMethod1
End Class 'MyAssembly
// Use this class with the LoadInvoke program.
// Compile this class using "csc /t:library MyAssembly.cs"
// to build MyAssembly.dll.
using System;
public class MyAssembly
{
public void MyMethod1()
{
Console.WriteLine("This is MyMethod1");
}
public void MyMethod2()
{
Console.WriteLine("This is MyMethod2");
}
public void MyMethod3()
{
Console.WriteLine("This is MyMethod3");
}
}
// Use this class with the LoadInvoke program.
// Compile this class using csc /t:library MyAssembly.cs
// to obtain MyAssembly.dll.
using namespace System;
public ref class MyAssembly
{
public:
void MyMethod1()
{
Console::WriteLine( "Invoking MyAssembly.MyMethod1" );
}
};
Vererbungshierarchie
System.Object
System.Reflection.Assembly
System.Reflection.Emit.AssemblyBuilder
Threadsicherheit
Dieser Typ ist sicher bei Multithreadoperationen.
Plattformen
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.
Versionsinformationen
.NET Framework
Unterstützt in: 2.0, 1.1, 1.0
.NET Compact Framework
Unterstützt in: 2.0, 1.0