AssemblyBuilder.DefineResource Método

Definição

Define um recurso autônomo gerenciado para esse assembly.

Sobrecargas

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 autônomo gerenciado para esse assembly. 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 (string name, string description, string fileName);

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. Não se deve incluir um caminho.

Retornos

Um objeto ResourceWriter para o recurso especificado.

Exceções

name foi definido anteriormente.

- ou -

Há outro arquivo no assembly chamado fileName.

- ou -

O comprimento de name é zero.

- ou -

O comprimento de 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());
}

Comentários

Recursos de granularidade fina podem ser adicionados com o retornado ResourceWriter chamando AddResource.

fileName não deve ser o mesmo que 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.

Nota

A partir do .NET Framework 2.0 Service Pack 1, esse membro não requer ReflectionPermission mais com o ReflectionPermissionFlag.ReflectionEmit sinalizador . (Consulte Problemas de segurança na emissão de reflexão.) Para usar essa funcionalidade, seu aplicativo deve ter como destino o .NET Framework 3.5 ou posterior.

Aplica-se a

.NET Framework 4.8.1 e outras versões
Produto Versões
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1

DefineResource(String, String, String, ResourceAttributes)

Define um recurso autônomo gerenciado para esse assembly. Atributos podem ser especificados para o recurso gerenciado.

public System.Resources.IResourceWriter DefineResource (string name, string description, string fileName, System.Reflection.ResourceAttributes attribute);

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. Não se deve incluir um caminho.

attribute
ResourceAttributes

Os atributos de recursos.

Retornos

Um objeto ResourceWriter para o recurso especificado.

Exceções

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

- ou -

O comprimento de name é zero.

- ou -

O comprimento de 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.

Nota

A partir do .NET Framework 2.0 Service Pack 1, esse membro não requer ReflectionPermission mais com o ReflectionPermissionFlag.ReflectionEmit sinalizador . (Consulte Problemas de segurança na emissão de reflexão.) Para usar essa funcionalidade, seu aplicativo deve ter como destino o .NET Framework 3.5 ou posterior.

Aplica-se a

.NET Framework 4.8.1 e outras versões
Produto Versões
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1