AssemblyBuilder.DefineResource Método

Definição

Define um recurso gerenciado autônomo para este assembly.

Sobrecargas

Nome Description
DefineResource(String, String, String)

Define um recurso gerenciado autônomo para esse assembly com o atributo de recurso público padrão.

DefineResource(String, String, String, ResourceAttributes)

Define um recurso gerenciado autônomo para este assembly. Os atributos podem ser especificados para o recurso gerenciado.

DefineResource(String, String, String)

Define um recurso gerenciado autônomo para esse assembly com o atributo de recurso público padrão.

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

O nome lógico do recurso.

description
String

Uma descrição textual do recurso.

fileName
String

O nome do arquivo físico (arquivo.resources) para o qual o nome lógico é mapeado. Isso não deve incluir um caminho.

Retornos

Um ResourceWriter objeto para o recurso especificado.

Exceções

name foi definido anteriormente.

-ou-

Há outro arquivo no assembly chamado fileName.

-ou-

O comprimento é name zero.

-ou-

O comprimento é fileName zero.

-ou-

fileName inclui um caminho.

name ou fileName é null.

O chamador não tem a permissão necessária.

Exemplos

O exemplo a seguir usa o DefineResource método para obter um gravador de recursos. O exemplo usa o gravador de recursos para adicionar três cadeias de caracteres de recurso.

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

Comentários

Recursos finos de grãos podem ser adicionados com o retornado ResourceWriter chamando AddResource.

fileName não deve ser igual ao de qualquer outro módulo persistente, recurso gerenciado autônomo ou o arquivo de manifesto autônomo.

O runtime chama o Close método quando o assembly dinâmico é salvo.

Aplica-se a

DefineResource(String, String, String, ResourceAttributes)

Define um recurso gerenciado autônomo para este assembly. Os atributos podem ser especificados para o recurso gerenciado.

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

O nome lógico do recurso.

description
String

Uma descrição textual do recurso.

fileName
String

O nome do arquivo físico (arquivo.resources) para o qual o nome lógico é mapeado. Isso não deve incluir um caminho.

attribute
ResourceAttributes

Os atributos de recurso.

Retornos

Um ResourceWriter objeto para o recurso especificado.

Exceções

name foi definido anteriormente ou se há outro arquivo no assembly nomeado fileName.

-ou-

O comprimento é name zero.

-ou-

O comprimento é fileName zero.

-ou-

fileName inclui um caminho.

name ou fileName é null.

O chamador não tem a permissão necessária.

Comentários

Recursos refinados podem ser adicionados com o retornado ResourceWriter chamando AddResource.

fileName não deve ser igual ao de qualquer outro módulo persistente, recurso gerenciado autônomo ou o arquivo de manifesto autônomo.

O runtime chama o Close método quando o assembly dinâmico é salvo.

Aplica-se a