AssemblyBuilder.DefineResource Método

Definición

Define un recurso administrado independiente para este ensamblado.

Sobrecargas

Nombre Description
DefineResource(String, String, String)

Define un recurso administrado independiente para este ensamblado con el atributo de recurso público predeterminado.

DefineResource(String, String, String, ResourceAttributes)

Define un recurso administrado independiente para este ensamblado. Los atributos se pueden especificar para el recurso administrado.

DefineResource(String, String, String)

Define un recurso administrado independiente para este ensamblado con el atributo de recurso público predeterminado.

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

Parámetros

name
String

Nombre lógico del recurso.

description
String

Descripción textual del recurso.

fileName
String

Nombre de archivo físico (archivo.resources) al que se asigna el nombre lógico. Esto no debe incluir una ruta de acceso.

Devoluciones

Objeto ResourceWriter para el recurso especificado.

Excepciones

name se ha definido anteriormente.

O bien

Hay otro archivo en el ensamblado denominado fileName.

O bien

La longitud de name es cero.

O bien

La longitud de fileName es cero.

O bien

fileName incluye una ruta de acceso.

name o fileName es null.

El autor de la llamada no tiene el permiso necesario.

Ejemplos

En el ejemplo siguiente se usa el DefineResource método para obtener un escritor de recursos. En el ejemplo se usa el escritor de recursos para agregar tres cadenas de recursos.

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

Comentarios

Los recursos específicos se pueden agregar con el devuelto ResourceWriter llamando a AddResource.

fileName no debe ser el mismo que el de cualquier otro módulo persistente, recurso administrado independiente o el archivo de manifiesto independiente.

El tiempo de ejecución llama al Close método cuando se guarda el ensamblado dinámico.

Se aplica a

DefineResource(String, String, String, ResourceAttributes)

Define un recurso administrado independiente para este ensamblado. Los atributos se pueden especificar para el recurso administrado.

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

Parámetros

name
String

Nombre lógico del recurso.

description
String

Descripción textual del recurso.

fileName
String

Nombre de archivo físico (archivo.resources) al que se asigna el nombre lógico. Esto no debe incluir una ruta de acceso.

attribute
ResourceAttributes

Atributos de recurso.

Devoluciones

Objeto ResourceWriter para el recurso especificado.

Excepciones

name se ha definido anteriormente o si hay otro archivo en el ensamblado denominado fileName.

O bien

La longitud de name es cero.

O bien

La longitud de fileName es cero.

O bien

fileName incluye una ruta de acceso.

name o fileName es null.

El autor de la llamada no tiene el permiso necesario.

Comentarios

Los recursos específicos se pueden agregar con el devuelto ResourceWriter llamando a AddResource.

fileName no debe ser el mismo que el de cualquier otro módulo persistente, recurso administrado independiente o el archivo de manifiesto independiente.

El tiempo de ejecución llama al Close método cuando se guarda el ensamblado dinámico.

Se aplica a