AssemblyBuilder.DefineResource メソッド

定義

このアセンブリのスタンドアロンマネージド リソースを定義します。

オーバーロード

名前 説明
DefineResource(String, String, String)

既定のパブリック リソース属性を使用して、このアセンブリのスタンドアロンマネージド リソースを定義します。

DefineResource(String, String, String, ResourceAttributes)

このアセンブリのスタンドアロンマネージド リソースを定義します。 属性は、マネージド リソースに対して指定できます。

DefineResource(String, String, String)

既定のパブリック リソース属性を使用して、このアセンブリのスタンドアロンマネージド リソースを定義します。

public:
 System::Resources::IResourceWriter ^ DefineResource(System::String ^ name, System::String ^ description, System::String ^ fileName);
public System.Resources.IResourceWriter DefineResource(string name, string description, string fileName);
member this.DefineResource : string * string * string -> System.Resources.IResourceWriter
Public Function DefineResource (name As String, description As String, fileName As String) As IResourceWriter

パラメーター

name
String

リソースの論理名。

description
String

リソースの説明テキスト。

fileName
String

論理名がマップされる物理ファイル名 (.resources ファイル)。 これにはパスを含めてはなりません。

返品

指定したリソースの ResourceWriter オブジェクト。

例外

name は以前に定義されています。

-または-

アセンブリには、 fileNameという名前の別のファイルがあります。

-または-

nameの長さは 0 です。

-または-

fileNameの長さは 0 です。

-または-

fileName にはパスが含まれています。

name または fileNamenull

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

次の例では、 DefineResource メソッドを使用してリソース ライターを取得します。 この例では、リソース ライターを使用して 3 つのリソース文字列を追加します。

public static void Main()
{
   AssemblyBuilder myAssembly;
   IResourceWriter myResourceWriter;
   myAssembly = (AssemblyBuilder)CreateAssembly(Thread.GetDomain()).Assembly;

   myResourceWriter = myAssembly.DefineResource("myResourceFile",
      "A sample Resource File", "MyEmitAssembly.MyResource.resources");
   myResourceWriter.AddResource("AddResource 1", "First added resource");
   myResourceWriter.AddResource("AddResource 2", "Second added resource");
   myResourceWriter.AddResource("AddResource 3", "Third added resource");

   myAssembly.DefineVersionInfoResource("AssemblySample", "2:0:0:1",
      "Microsoft Corporation", "@Copyright Microsoft Corp. 1990-2001",
      ".NET is a trademark of Microsoft Corporation");
   myAssembly.Save("MyEmitAssembly.dll");
}

// Create the callee transient dynamic assembly.
private static Type CreateAssembly(AppDomain appDomain)
{
   AssemblyName myAssemblyName = new AssemblyName();
   myAssemblyName.Name = "MyEmitAssembly";
   AssemblyBuilder myAssembly = appDomain.DefineDynamicAssembly(myAssemblyName,
      AssemblyBuilderAccess.Save);
   ModuleBuilder myModule = myAssembly.DefineDynamicModule("EmittedModule",
      "EmittedModule.mod");

   // Define a public class named "HelloWorld" in the assembly.
   TypeBuilder helloWorldClass =
      myModule.DefineType("HelloWorld", TypeAttributes.Public);
   // Define the Display method.
   MethodBuilder myMethod = helloWorldClass.DefineMethod("Display",
      MethodAttributes.Public, typeof(String), null);

   // Generate IL for GetGreeting.
   ILGenerator methodIL = myMethod.GetILGenerator();
   methodIL.Emit(OpCodes.Ldstr, "Display method get called.");
   methodIL.Emit(OpCodes.Ret);

   // Returns the type HelloWorld.
   return(helloWorldClass.CreateType());
}
Public Shared Sub Main()
   Dim myAssembly As AssemblyBuilder
   Dim myResourceWriter As IResourceWriter
   myAssembly = CType(CreateAssembly(Thread.GetDomain()).Assembly, AssemblyBuilder)
   
   myResourceWriter = myAssembly.DefineResource("myResourceFile", "A sample Resource File", _
                                                      "MyEmitAssembly.MyResource.resources")
   myResourceWriter.AddResource("AddResource 1", "First added resource")
   myResourceWriter.AddResource("AddResource 2", "Second added resource")
   myResourceWriter.AddResource("AddResource 3", "Third added resource")
   
   myAssembly.DefineVersionInfoResource("AssemblySample", "2:0:0:1", "Microsoft Corporation", _
         "@Copyright Microsoft Corp. 1990-2001", ".NET is a trademark of Microsoft Corporation")
   myAssembly.Save("MyEmitAssembly.dll")
End Sub

' Create the callee transient dynamic assembly.
Private Shared Function CreateAssembly(myAppDomain As AppDomain) As Type
   Dim myAssemblyName As New AssemblyName()
   myAssemblyName.Name = "MyEmitAssembly"
   Dim myAssembly As AssemblyBuilder = myAppDomain.DefineDynamicAssembly(myAssemblyName, _
                                                            AssemblyBuilderAccess.Save)
   Dim myModule As ModuleBuilder = myAssembly.DefineDynamicModule("EmittedModule", _
                                                            "EmittedModule.mod")
   
   ' Define a public class named "HelloWorld" in the assembly.
   Dim helloWorldClass As TypeBuilder = myModule.DefineType("HelloWorld", TypeAttributes.Public)
   ' Define the Display method.
   Dim myMethod As MethodBuilder = helloWorldClass.DefineMethod("Display", _
                                 MethodAttributes.Public, GetType(String), Nothing)
   
   ' Generate IL for GetGreeting.
   Dim methodIL As ILGenerator = myMethod.GetILGenerator()
   methodIL.Emit(OpCodes.Ldstr, "Display method get called.")
   methodIL.Emit(OpCodes.Ret)
   ' Returns the type HelloWorld.
   Return helloWorldClass.CreateType()
End Function 'CreateAssembly

注釈

AddResourceを呼び出すことで、返されたResourceWriterと共にきめ細かいリソースを追加できます。

fileName は、他の永続化可能なモジュール、スタンドアロン マネージド リソース、またはスタンドアロン マニフェスト ファイルと同じにすることはできません。

ランタイムは、動的アセンブリが保存されるときに、 Close メソッドを呼び出します。

適用対象

DefineResource(String, String, String, ResourceAttributes)

このアセンブリのスタンドアロンマネージド リソースを定義します。 属性は、マネージド リソースに対して指定できます。

public:
 System::Resources::IResourceWriter ^ DefineResource(System::String ^ name, System::String ^ description, System::String ^ fileName, System::Reflection::ResourceAttributes attribute);
public System.Resources.IResourceWriter DefineResource(string name, string description, string fileName, System.Reflection.ResourceAttributes attribute);
member this.DefineResource : string * string * string * System.Reflection.ResourceAttributes -> System.Resources.IResourceWriter
Public Function DefineResource (name As String, description As String, fileName As String, attribute As ResourceAttributes) As IResourceWriter

パラメーター

name
String

リソースの論理名。

description
String

リソースの説明テキスト。

fileName
String

論理名がマップされる物理ファイル名 (.resources ファイル)。 これにはパスを含めてはなりません。

attribute
ResourceAttributes

リソース属性。

返品

指定したリソースの ResourceWriter オブジェクト。

例外

name が既に定義されているか、 fileNameという名前のアセンブリに別のファイルがある場合。

-または-

nameの長さは 0 です。

-または-

fileNameの長さは 0 です。

-または-

fileName にはパスが含まれています。

name または fileNamenull

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

注釈

AddResourceを呼び出すことで、返されたResourceWriterできめ細かなリソースを追加できます。

fileName は、他の永続化可能なモジュール、スタンドアロンのマネージド リソース、またはスタンドアロン マニフェスト ファイルと同じにすることはできません。

ランタイムは、動的アセンブリが保存されるときに、 Close メソッドを呼び出します。

適用対象