AssemblyBuilder.DefineUnmanagedResource メソッド (String)
アセンブリ: mscorlib (mscorlib.dll 内)

Dim instance As AssemblyBuilder Dim resourceFileName As String instance.DefineUnmanagedResource(resourceFileName)
- resourceFileName
リソース ファイルの名前。


アセンブリは、1 つのアンマネージ リソースとしか関連付けることができません。DefineVersionInfoResource または DefineUnmanagedResource を呼び出した後で、再びいずれかのメソッドを呼び出すと、System.ArgumentException がスローされます。複数のアンマネージ リソースは、Microsoft ResMerge ユーティリティなどのツールでマージする必要があります。このツールは、共通言語ランタイムには含まれていません。

次の例は、DefineUnmanagedResource を呼び出して外部リソース ファイルを渡す方法を示しています。
Friend Shared Sub Main() Dim myAssembly As AssemblyBuilder = _ CreateAssembly("MyEmitTestAssembly") ' Defines a standalone managed resource for this assembly. Dim myResourceWriter As IResourceWriter = _ myAssembly.DefineResource("myResourceFile", _ "A sample Resource File", "MyAssemblyResource.resources", _ ResourceAttributes.Private) myResourceWriter.AddResource("AddResource Test", "Testing for the added resource") myAssembly.Save(myAssembly.GetName().Name & ".dll") ' Defines an unmanaged resource file for this assembly. myAssembly.DefineUnmanagedResource("MyAssemblyResource.resources") End Sub Private Shared Function CreateAssembly(ByVal name As String) As AssemblyBuilder Dim aName As New AssemblyName(name) Dim myAssembly As AssemblyBuilder = _ AppDomain.CurrentDomain.DefineDynamicAssembly(aName, _ AssemblyBuilderAccess.Save) ' Define a dynamic module. Dim myModule As ModuleBuilder = _ myAssembly.DefineDynamicModule(aName.Name, aName.Name & ".dll") ' Define a public class named "EmitClass" in the assembly. Dim myEmitClass As TypeBuilder = _ myModule.DefineType("EmitClass", TypeAttributes.Public) ' Define the Display method. Dim myMethod As MethodBuilder = _ myEmitClass.DefineMethod("Display", MethodAttributes.Public, _ GetType(String), Nothing) ' Generate IL for Display method. Dim methodIL As ILGenerator = myMethod.GetILGenerator() methodIL.Emit(OpCodes.Ldstr, "Display method get called.") methodIL.Emit(OpCodes.Ret) myEmitClass.CreateType() Return myAssembly End Function
internal static void Main() { AssemblyBuilder myAssembly = CreateAssembly("MyEmitTestAssembly"); // Defines a standalone managed resource for this assembly. IResourceWriter myResourceWriter = myAssembly.DefineResource("myResourceFile" , "A sample Resource File", "MyAssemblyResource.resources", ResourceAttributes.Private); myResourceWriter.AddResource("AddResource Test", "Testing for the added resource"); myAssembly.Save(myAssembly.GetName().Name + ".dll"); // Defines an unmanaged resource file for this assembly. myAssembly.DefineUnmanagedResource("MyAssemblyResource.resources"); } private static AssemblyBuilder CreateAssembly(string name) { AssemblyName aName = new AssemblyName(name); AssemblyBuilder myAssembly = AppDomain.CurrentDomain.DefineDynamicAssembly(aName, AssemblyBuilderAccess.Save); // Define a dynamic module. ModuleBuilder myModule = myAssembly.DefineDynamicModule(aName.Name, aName.Name + ".dll"); // Define a public class named "EmitClass" in the assembly. TypeBuilder myEmitClass = myModule.DefineType("EmitClass", TypeAttributes.Public); // Define the Display method. MethodBuilder myMethod = myEmitClass.DefineMethod("Display", MethodAttributes.Public, typeof(String), null); // Generate IL for Display method. ILGenerator methodIL = myMethod.GetILGenerator(); methodIL.Emit(OpCodes.Ldstr, "Display method gets called."); methodIL.Emit(OpCodes.Ret); myEmitClass.CreateType(); return(myAssembly); } }
void main() { AssemblyBuilder^ myAssembly = CreateAssembly("MyEmitTestAssembly"); // Defines a standalone managed resource for this assembly. IResourceWriter^ myResourceWriter = myAssembly->DefineResource( "myResourceFile", "A sample Resource File", "MyAssemblyResource.resources", ResourceAttributes::Private ); myResourceWriter->AddResource( "AddResource Test", "Testing for the added resource" ); myAssembly->Save(myAssembly->GetName()->Name + ".dll" ); // Defines an unmanaged resource file for this assembly. myAssembly->DefineUnmanagedResource( "MyAssemblyResource.resources" ); };
public static void main(String[] args) { AssemblyBuilder myAssembly = (AssemblyBuilder)(CreateAssembly( System.Threading.Thread.GetDomain()).get_Assembly()); // Defines a standalone managed resource for this assembly. IResourceWriter myResourceWriter = myAssembly.DefineResource( "myResourceFile", "A sample Resource File", "MyAssemblyResource.resources", ResourceAttributes.Private); myResourceWriter.AddResource("AddResource Test", "Testing for the added resource"); myAssembly.Save("MyEmitTestAssembly.dll"); // Defines an unmanaged resource file for this assembly. myAssembly.DefineUnmanagedResource("MyAssemblyResource.resources"); } //main private static Type CreateAssembly(AppDomain myDomain) { AssemblyName myAssemblyName = new AssemblyName(); myAssemblyName.set_Name("MyEmitTestAssembly"); AssemblyBuilder myAssembly = myDomain.DefineDynamicAssembly( myAssemblyName, AssemblyBuilderAccess.Save); // Define a dynamic module. ModuleBuilder myModule = myAssembly.DefineDynamicModule( "MyEmittedModule", "MyEmittedModule.mod"); // Define a public class named "EmitClass" in the assembly. TypeBuilder myEmitClass = myModule.DefineType("EmitClass", TypeAttributes.Public); // Define the Display method. MethodBuilder myMethod = myEmitClass.DefineMethod("Display", MethodAttributes.Public, String.class.ToType(), null); // Generate IL for Display method. ILGenerator methodIL = myMethod.GetILGenerator(); methodIL.Emit(OpCodes.Ldstr, "Display method get called."); methodIL.Emit(OpCodes.Ret); // Returns the type of EmitClass. return myEmitClass.CreateType(); } //CreateAssembly


Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


AssemblyBuilder.DefineUnmanagedResource メソッド (Byte[])
アセンブリ: mscorlib (mscorlib.dll 内)



アセンブリは、1 つのアンマネージ リソースとしか関連付けることができません。DefineVersionInfoResource または DefineUnmanagedResource を呼び出した後で、再びいずれかのメソッドを呼び出すと、System.ArgumentException がスローされます。複数のアンマネージ リソースは、Microsoft ResMerge ユーティリティなどのツールでマージする必要があります。このツールは、共通言語ランタイムには含まれていません。

次のコード例は、DefineUnmanagedResource を使用してアンマネージ リソースを表すバイト配列を作成し、それを動的アセンブリに追加しています。
Imports System Imports System.Threading Imports System.Reflection Imports System.Reflection.Emit Imports System.Resources Public Class MyAssemblyResource Friend Shared Sub Main() Dim myAssembly As AssemblyBuilder = _ CreateAssembly("MyEmitTestAssembly") ' Defines a standalone managed resource for this assembly. Dim myResourceWriter As IResourceWriter = _ myAssembly.DefineResource("myResourceFile", _ "A sample Resource File", "MyAssemblyResource.resources", _ ResourceAttributes.Private) myResourceWriter.AddResource("AddResource Test", "Testing for the added resource") myAssembly.Save(myAssembly.GetName().Name & ".dll") ' Defines an unmanaged resource file for this assembly. myAssembly.DefineUnmanagedResource(New Byte() {1, 0, 1}) End Sub Private Shared Function CreateAssembly(ByVal name As String) As AssemblyBuilder Dim aName As New AssemblyName(name) Dim myAssembly As AssemblyBuilder = _ AppDomain.CurrentDomain.DefineDynamicAssembly(aName, _ AssemblyBuilderAccess.Save) ' Define a dynamic module. Dim myModule As ModuleBuilder = _ myAssembly.DefineDynamicModule(aName.Name, aName.Name & ".dll") ' Define a public class named "EmitClass" in the assembly. Dim myEmitClass As TypeBuilder = _ myModule.DefineType("EmitClass", TypeAttributes.Public) ' Define the Display method. Dim myMethod As MethodBuilder = _ myEmitClass.DefineMethod("Display", MethodAttributes.Public, _ GetType(String), Nothing) ' Generate IL for Display method. Dim methodIL As ILGenerator = myMethod.GetILGenerator() methodIL.Emit(OpCodes.Ldstr, "Display method get called.") methodIL.Emit(OpCodes.Ret) myEmitClass.CreateType() Return myAssembly End Function End Class
using System; using System.Threading; using System.Reflection; using System.Reflection.Emit; using System.Resources; public class MyAssemblyResource { internal static void Main() { AssemblyBuilder myAssembly = CreateAssembly("MyEmitTestAssembly"); // Defines a standalone managed resource for this assembly. IResourceWriter myResourceWriter = myAssembly.DefineResource("myResourceFile" , "A sample Resource File", "MyAssemblyResource.resources", ResourceAttributes.Private); myResourceWriter.AddResource("AddResource Test", "Testing for the added resource"); myAssembly.Save(myAssembly.GetName().Name + ".dll"); // Defines an unmanaged resource file for this assembly. myAssembly.DefineUnmanagedResource(new byte[]{01, 00, 01}); } private static AssemblyBuilder CreateAssembly(string name) { AssemblyName aName = new AssemblyName(name); AssemblyBuilder myAssembly = AppDomain.CurrentDomain.DefineDynamicAssembly(aName, AssemblyBuilderAccess.Save); // Define a dynamic module. ModuleBuilder myModule = myAssembly.DefineDynamicModule(aName.Name, aName.Name + ".dll"); // Define a public class named "EmitClass" in the assembly. TypeBuilder myEmitClass = myModule.DefineType("EmitClass", TypeAttributes.Public); // Define the Display method. MethodBuilder myMethod = myEmitClass.DefineMethod("Display", MethodAttributes.Public, typeof(String), null); // Generate IL for Display method. ILGenerator methodIL = myMethod.GetILGenerator(); methodIL.Emit(OpCodes.Ldstr, "Display method gets called."); methodIL.Emit(OpCodes.Ret); myEmitClass.CreateType(); return(myAssembly); } }
/* The following program demonstrates the 'DefineResource' and 'DefineUnmanagedResource' methods of 'AssemblyBuilder' class. It builds an assembly and a resource file at runtime. An unmanaged resource file is also defined for the same resource file. The EmittedTest2.cpp file calls the methods of "MyEmitAssembly.dll" assembly and the message is displayed to console. */ using namespace System; using namespace System::Threading; using namespace System::Reflection; using namespace System::Reflection::Emit; using namespace System::Resources; static AssemblyBuilder^ CreateAssembly( String^ name ) { AssemblyName^ aName = gcnew AssemblyName(name); AssemblyBuilder^ myAssembly = AppDomain::CurrentDomain->DefineDynamicAssembly( aName, AssemblyBuilderAccess::Save ); // Define a dynamic module. ModuleBuilder^ myModule = myAssembly->DefineDynamicModule( aName->Name, aName->Name + ".dll" ); // Define a public class named "EmitClass" in the assembly. TypeBuilder^ myEmitClass = myModule->DefineType( "EmitClass", TypeAttributes::Public ); // Define the Display method. MethodBuilder^ myMethod = myEmitClass->DefineMethod( "Display", MethodAttributes::Public, String::typeid, nullptr ); // Generate IL for Display method. ILGenerator^ methodIL = myMethod->GetILGenerator(); methodIL->Emit( OpCodes::Ldstr, "Display method gets called." ); methodIL->Emit( OpCodes::Ret ); myEmitClass->CreateType(); return (myAssembly); }; void main() { AssemblyBuilder^ myAssembly = CreateAssembly("MyEmitTestAssembly"); // Defines a standalone managed resource for this assembly. IResourceWriter^ myResourceWriter = myAssembly->DefineResource( "myResourceFile", "A sample Resource File", "MyAssemblyResource.resources", ResourceAttributes::Private ); myResourceWriter->AddResource( "AddResource Test", "Testing for the added resource" ); myAssembly->Save(myAssembly->GetName()->Name + ".dll" ); // Defines an unmanaged resource file for this assembly. myAssembly->DefineUnmanagedResource( gcnew array<Byte>{01, 00, 01} ); };


Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


AssemblyBuilder.DefineUnmanagedResource メソッド
Weblioに収録されているすべての辞書からAssemblyBuilder.DefineUnmanagedResourceを検索する場合は、下記のリンクをクリックしてください。

- AssemblyBuilder.DefineUnmanagedResourceのページへのリンク