Assembly クラス
アセンブリ: mscorlib (mscorlib.dll 内)
構文
<SerializableAttribute> _ <ClassInterfaceAttribute(ClassInterfaceType.None)> _ <ComVisibleAttribute(True)> _ Public Class Assembly Implements _Assembly, IEvidenceFactory, ICustomAttributeProvider, ISerializable
[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
アセンブリは、インフラストラクチャを用意します。このインフラストラクチャによって、Runtime がアプリケーションの内容を完全に理解し、アプリケーションで定義されるバージョン管理と依存関係の規則を適用できます。これらは、バージョン管理の問題を解決し、Runtime アプリケーションの配置を単純化するために重要な概念です。
アセンブリ内の各メソッドについて、メソッド シグネチャを列挙するコード例を次に示します。
' 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"); } }
System.Reflection.Assembly
System.Reflection.Emit.AssemblyBuilder
プラットフォーム
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
参照
- Assembly クラスのページへのリンク