ModuleBuilder.DefineResource Metódus

Definíció

Definiál egy felügyelt beágyazott erőforrást, amely ebben a modulban tárolható.

Túlterhelések

Name Description
DefineResource(String, String)

Meghatározza a modulban tárolandó nevesített felügyelt beágyazott erőforrást.

DefineResource(String, String, ResourceAttributes)

Meghatározza a nevesített felügyelt beágyazott erőforrást az ebben a modulban tárolandó adott attribútumokkal.

DefineResource(String, String)

Meghatározza a modulban tárolandó nevesített felügyelt beágyazott erőforrást.

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

Paraméterek

name
String

Az erőforrás neve. name nem tartalmazhat beágyazott null értékeket.

description
String

Az erőforrás leírása.

Válaszok

A definiált erőforrás erőforrás-írója.

Kivételek

A hossz name nulla.

name null értékű.

Ez a modul átmeneti.

-vagy-

A tárolószerelvény nem tartható fenn.

Példák

Az alábbi példa azt szemlélteti DefineResource , hogy külső erőforrást kell hozzáadni az aktuálishoz ModuleBuilder.

using System;
using System.Reflection;
using System.Reflection.Emit;
using System.Resources;

   public class CodeGenerator
   {
      public CodeGenerator()
      {
         // Get the current application domain for the current thread.
         AppDomain currentDomain = AppDomain.CurrentDomain;

         AssemblyName myAssemblyName = new AssemblyName();
         myAssemblyName.Name = "TempAssembly";

         // Define 'TempAssembly' assembly in the current application domain.
         AssemblyBuilder myAssemblyBuilder =
            currentDomain.DefineDynamicAssembly
                        (myAssemblyName, AssemblyBuilderAccess.RunAndSave);
         // Define 'TempModule' module in 'TempAssembly' assembly.
         ModuleBuilder myModuleBuilder =
            myAssemblyBuilder.DefineDynamicModule("TempModule",
                                       "TempModule.netmodule",true);
         // Define the managed embedded resource, 'MyResource' in 'TempModule'.
         IResourceWriter myResourceWriter =
               myModuleBuilder.DefineResource("MyResource.resource","Description");
         // Add resources to the resource writer.
         myResourceWriter.AddResource("String 1", "First String");
         myResourceWriter.AddResource("String 2", "Second String");
         myResourceWriter.AddResource("String 3", "Third String");
         myAssemblyBuilder.Save("MyAssembly.dll");
      }
   }

   public class CallerClass
   {
      public static void Main()
      {
         CodeGenerator myGenerator = new CodeGenerator();
         Console.WriteLine("A resource named 'MyResource.resource'"
                +" has been created and can be viewed  in the 'MyAssembly.dll'");
      }
   }
Imports System.Reflection
Imports System.Reflection.Emit
Imports System.Resources

Public Class CodeGenerator
   
   Public Sub New()
      ' Get the current application domain for the current thread.
      Dim currentDomain As AppDomain = AppDomain.CurrentDomain

      Dim myAssemblyName As New AssemblyName()
      myAssemblyName.Name = "TempAssembly"
      
      ' Define 'TempAssembly' assembly in the current application domain.
      Dim myAssemblyBuilder As AssemblyBuilder = currentDomain.DefineDynamicAssembly _
                                       (myAssemblyName, AssemblyBuilderAccess.RunAndSave)
      ' Define 'TempModule' module in 'TempAssembly' assembly.
      Dim myModuleBuilder As ModuleBuilder = myAssemblyBuilder.DefineDynamicModule _
                                             ("TempModule", "TempModule.netmodule", True)
      ' Define the managed embedded resource, 'MyResource' in 'TempModule'.
      Dim myResourceWriter As IResourceWriter = myModuleBuilder.DefineResource _
                                                   ("MyResource.resource", "Description")
      ' Add resources to the resource writer.
      myResourceWriter.AddResource("String 1", "First String")
      myResourceWriter.AddResource("String 2", "Second String")
      myResourceWriter.AddResource("String 3", "Third String")
      myAssemblyBuilder.Save("MyAssembly.dll")

   End Sub
End Class

Public Class CallerClass
   
   Public Shared Sub Main()
      Dim myGenerator As New CodeGenerator()
      Console.WriteLine("A resource named 'MyResource.resource' has been created and can be" + _
                                                               " viewed  in the 'MyAssembly.dll'")
   End Sub
End Class

Megjegyzések

A hívó nem hívhatja meg a metódusokat és ResourceWriter.Generate() a ResourceWriter.Close() metódusokat, mert ezeket a metódusokat a dinamikus szerelvény lemezre írásakor hívja ModuleBuilder.Save meg.

Ezzel a módszerrel beágyazhat egy felügyelt erőforrást. Jegyzékerőforrás-blob beágyazásához használja a metódust DefineManifestResource . A felügyelt erőforrások és a jegyzék típusú erőforrásblobok beágyazásának és összekapcsolásának összegzését a DefineManifestResource metódusban tekinti meg.

Lásd még

A következőre érvényes:

DefineResource(String, String, ResourceAttributes)

Meghatározza a nevesített felügyelt beágyazott erőforrást az ebben a modulban tárolandó adott attribútumokkal.

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

Paraméterek

name
String

Az erőforrás neve. name nem tartalmazhat beágyazott null értékeket.

description
String

Az erőforrás leírása.

attribute
ResourceAttributes

Az erőforrásattribútumok.

Válaszok

A definiált erőforrás erőforrás-írója.

Kivételek

A hossz name nulla.

name null értékű.

Ez a modul átmeneti.

-vagy-

A tárolószerelvény nem tartható fenn.

Példák

Az alábbi példa azt szemlélteti, hogy a DefineResource használatával külső erőforrást adhat hozzá az aktuálishoz ModuleBuilder.

using System;
using System.Reflection;
using System.Reflection.Emit;
using System.Resources;

   public class CodeGenerator
   {
      public CodeGenerator()
      {
         // Get the current application domain for the current thread.
         AppDomain currentDomain = AppDomain.CurrentDomain;

         AssemblyName myAssemblyName = new AssemblyName();
         myAssemblyName.Name = "TempAssembly";

         // Define 'TempAssembly' assembly in the current application domain.
         AssemblyBuilder myAssemblyBuilder =
            currentDomain.DefineDynamicAssembly
                        (myAssemblyName, AssemblyBuilderAccess.RunAndSave);
         // Define 'TempModule' module in 'TempAssembly' assembly.
         ModuleBuilder myModuleBuilder =
            myAssemblyBuilder.DefineDynamicModule("TempModule",
                                              "TempModule.netmodule",true);
         // Define the managed embedded resource, 'MyResource' in 'TempModule'
         // with the specified attribute.
         IResourceWriter writer =
               myModuleBuilder.DefineResource("MyResource.resource",
                            "Description",ResourceAttributes.Public);
         // Add resources to the resource writer.
         writer.AddResource("String 1", "First String");
         writer.AddResource("String 2", "Second String");
         writer.AddResource("String 3", "Third String");
         myAssemblyBuilder.Save("MyAssembly.dll");
      }
   }

   public class CallerClass
   {
      public static void Main()
      {
         CodeGenerator myGenerator = new CodeGenerator();
         Console.WriteLine("A resource named 'MyResource.resource'"
                +" has been created and can be viewed  in the 'MyAssembly.dll'");
      }
   }
Imports System.Reflection
Imports System.Reflection.Emit
Imports System.Resources

Public Class CodeGenerator
   
   Public Sub New()
      ' Get the current application domain for the current thread.
      Dim currentDomain As AppDomain = AppDomain.CurrentDomain

      Dim myAssemblyName As New AssemblyName()
      myAssemblyName.Name = "TempAssembly"
      
      ' Define 'TempAssembly' assembly in the current application domain.
      Dim myAssemblyBuilder As AssemblyBuilder = currentDomain.DefineDynamicAssembly _
                                          (myAssemblyName, AssemblyBuilderAccess.RunAndSave)
      ' Define 'TempModule' module in 'TempAssembly' assembly.
      Dim myModuleBuilder As ModuleBuilder = myAssemblyBuilder.DefineDynamicModule _
                                                ("TempModule", "TempModule.netmodule", True)
      ' Define the managed embedded resource, 'MyResource' in 'TempModule'
      ' with the specified attribute.
      Dim writer As IResourceWriter = myModuleBuilder.DefineResource _
                              ("MyResource.resource", "Description", ResourceAttributes.Public)
      ' Add resources to the resource writer.
      writer.AddResource("String 1", "First String")
      writer.AddResource("String 2", "Second String")
      writer.AddResource("String 3", "Third String")
      myAssemblyBuilder.Save("MyAssembly.dll")

   End Sub
End Class

Public Class CallerClass
   
   Public Shared Sub Main()
      Dim myGenerator As New CodeGenerator()
      Console.WriteLine("A resource named 'MyResource.resource' has been created and can be " + _
                                                         "viewed  in the 'MyAssembly.dll'")
   End Sub
End Class

Megjegyzések

A hívó nem hívhatja meg a metódusokat és ResourceWriter.Generate() a ResourceWriter.Close() metódusokat, mert ezeket a metódusokat a dinamikus szerelvény lemezre írásakor hívja ModuleBuilder.Save meg.

Ezzel a módszerrel beágyazhat egy felügyelt erőforrást. Jegyzékerőforrás-blob beágyazásához használja a metódust DefineManifestResource . A felügyelt erőforrások és a jegyzék típusú erőforrásblobok beágyazásának és összekapcsolásának összegzését a DefineManifestResource metódusban tekinti meg.

Lásd még

A következőre érvényes: