Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Metodo ModuleBuilder.DefineResource (String, String, ResourceAttributes)

 

Data di pubblicazione: ottobre 2016

Definisce la risorsa incorporata gestita denominata con gli attributi specificati che devono essere archiviati in questo modulo.

Spazio dei nomi:   System.Reflection.Emit
Assembly:  mscorlib (in mscorlib.dll)

public IResourceWriter DefineResource(
	string name,
	string description,
	ResourceAttributes attribute
)

Parametri

name
Type: System.String

Nome della risorsa. name non può contenere valori Null incorporati.

description
Type: System.String

Descrizione della risorsa.

attribute
Type: System.Reflection.ResourceAttributes

Attributi della risorsa.

Valore restituito

Type: System.Resources.IResourceWriter

Un writer di risorse per la risorsa definita.

Exception Condition
ArgumentException

La lunghezza di name è zero.

ArgumentNullException

name è null.

InvalidOperationException

Questo modulo è temporaneo.

-oppure-

L'assembly che contiene non è persistente.

Il chiamante non è necessario chiamare il ResourceWriter.Generate() e ResourceWriter.Close() metodi, poiché questi metodi vengono chiamati dal ModuleBuilder.Save quando l'assembly dinamico viene scritto su disco.

Utilizzare questo metodo per incorporare una risorsa gestita. Per incorporare un blob di risorsa del manifesto, utilizzare il DefineManifestResource metodo. Per un riepilogo di incorporamento e collegamento di risorse gestite e BLOB di risorsa del manifesto, vedere il DefineManifestResource metodo.

System_CAPS_noteNota

A partire dal .NET Framework 2.0 Service Pack 1, questo membro non è più necessario ReflectionPermission con il ReflectionPermissionFlag.ReflectionEmit flag. Per informazioni, vedere Security Issues in Reflection Emit. Per usare questa funzionalità, l'applicazione deve essere destinata a .NET Framework 3.5 o versione successiva.

Nell'esempio seguente viene illustrato l'utilizzo di DefineResource per aggiungere una risorsa esterna all'oggetto corrente 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'");
      }
   }

.NET Framework
Disponibile da 1.1
Torna all'inizio
Mostra: