AssemblyBuilder.DefineResource Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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.