AssemblyBuilder.DefineUnmanagedResourceとは? わかりやすく解説

Weblio 辞書 > コンピュータ > .NET Framework クラス ライブラリ リファレンス > AssemblyBuilder.DefineUnmanagedResourceの意味・解説 

AssemblyBuilder.DefineUnmanagedResource メソッド (String)

リソース ファイル名を指定して、このアセンブリのアンマネージ リソース ファイル定義します

名前空間: System.Reflection.Emit
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

Public Sub DefineUnmanagedResource ( _
    resourceFileName As String _
)
Dim instance As AssemblyBuilder
Dim resourceFileName As String

instance.DefineUnmanagedResource(resourceFileName)
public void DefineUnmanagedResource (
    string resourceFileName
)
public:
void DefineUnmanagedResource (
    String^ resourceFileName
)
public void DefineUnmanagedResource (
    String resourceFileName
)
public function DefineUnmanagedResource (
    resourceFileName : String
)

パラメータ

resourceFileName

リソース ファイルの名前。

例外例外
例外種類条件

ArgumentException

アンマネージ リソースが既に定義されています。

または

ファイル resourceFileName読み取り可能ではありません。

または

resourceFileName空の文字列 ("") です。

ArgumentNullException

resourceFileNamenull 参照 (Visual Basic では Nothing) です。

FileNotFoundException

resourceFileName が見つかりません。

または

resourceFileNameディレクトリです。

SecurityException

呼び出し元に必要なアクセス許可がありません。

解説解説

アセンブリは、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
.NET Framework のセキュリティ.NET Frameworkセキュリティ
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
AssemblyBuilder クラス
AssemblyBuilder メンバ
System.Reflection.Emit 名前空間

AssemblyBuilder.DefineUnmanagedResource メソッド (Byte[])

このアセンブリのアンマネージ リソースバイト非透過 BLOB として定義します

名前空間: System.Reflection.Emit
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

Public Sub DefineUnmanagedResource ( _
    resource As Byte() _
)
Dim instance As AssemblyBuilder
Dim resource As Byte()

instance.DefineUnmanagedResource(resource)
public void DefineUnmanagedResource (
    byte[] resource
)
public:
void DefineUnmanagedResource (
    array<unsigned char>^ resource
)
public void DefineUnmanagedResource (
    byte[] resource
)
public function DefineUnmanagedResource (
    resource : byte[]
)

パラメータ

resource

アンマネージ リソースを表すバイト非透過 BLOB

例外例外
例外種類条件

ArgumentException

アンマネージ リソースが既に定義されています。

ArgumentNullException

resourcenull 参照 (Visual Basic では Nothing) です。

SecurityException

呼び出し元に必要なアクセス許可がありません。

解説解説

アセンブリは、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}
 );
   };

.NET Framework のセキュリティ.NET Frameworkセキュリティ
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
AssemblyBuilder クラス
AssemblyBuilder メンバ
System.Reflection.Emit 名前空間

AssemblyBuilder.DefineUnmanagedResource メソッド

このアセンブリのアンマネージ リソース定義します
オーバーロードの一覧オーバーロードの一覧

名前 説明
AssemblyBuilder.DefineUnmanagedResource (Byte[]) このアセンブリのアンマネージ リソースバイト非透過 BLOB として定義します
AssemblyBuilder.DefineUnmanagedResource (String) リソース ファイル名を指定して、このアセンブリのアンマネージ リソース ファイル定義します
参照参照

関連項目

AssemblyBuilder クラス
AssemblyBuilder メンバ
System.Reflection.Emit 名前空間


このページでは「.NET Framework クラス ライブラリ リファレンス」からAssemblyBuilder.DefineUnmanagedResourceを検索した結果を表示しています。
Weblioに収録されているすべての辞書からAssemblyBuilder.DefineUnmanagedResourceを検索する場合は、下記のリンクをクリックしてください。
 全ての辞書からAssemblyBuilder.DefineUnmanagedResource を検索

英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「AssemblyBuilder.DefineUnmanagedResource」の関連用語

AssemblyBuilder.DefineUnmanagedResourceのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



AssemblyBuilder.DefineUnmanagedResourceのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2025 Microsoft.All rights reserved.

©2025 GRAS Group, Inc.RSS