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 AssemblyBuilder.DefineResource (String, String, String)

 

Data di pubblicazione: ottobre 2016

Definisce una risorsa gestita autonoma per questo assembly con l'attributo di risorsa pubblica predefinito.

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

public IResourceWriter DefineResource(
	string name,
	string description,
	string fileName
)

Parametri

name
Type: System.String

Nome logico della risorsa.

description
Type: System.String

Descrizione testuale della risorsa.

fileName
Type: System.String

Nome fisico del file (file con estensione resources) a cui è mappato il nome logico. Non deve includere un percorso.

Valore restituito

Type: System.Resources.IResourceWriter

Oggetto ResourceWriter per la risorsa specificata.

Exception Condition
ArgumentException

L'oggetto name è stato definito in precedenza.

-oppure-

C'è un altro file nell'assembly denominato fileName.

-oppure-

La lunghezza di name è zero.

-oppure-

La lunghezza di fileName è zero.

-oppure-

fileName include un percorso.

ArgumentNullException

name o fileName è null.

SecurityException

Il chiamante non dispone dell'autorizzazione richiesta.

Fine grain resources can be added with the returned T:System.Resources.ResourceWriter by calling M:System.Resources.ResourceWriter.AddResource(System.String,System.String).

fileName should not be the same as that of any other persistable module, stand-alone managed resource, or the stand-alone manifest file.

The runtime calls the M:System.Resources.ResourceWriter.Close method when the dynamic assembly is saved.

System_CAPS_noteNota

Starting with the net_v20sp1_long, this member no longer requires T:System.Security.Permissions.ReflectionPermission with the F:System.Security.Permissions.ReflectionPermissionFlag.ReflectionEmit flag. (See Security Issues in Reflection Emit.) To use this functionality, your application should target the net_v35_long or later.

The following example uses the M:System.Reflection.Emit.AssemblyBuilder.DefineResource(System.String,System.String,System.String) method to get a resource writer. The example uses the resource writer to add three resource strings.

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

ReflectionPermission

when invoked late-bound through mechanisms such as M:System.Type.InvokeMember(System.String,System.Reflection.BindingFlags,System.Reflection.Binder,System.Object,System.Object[],System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[]). Associated enumeration: F:System.Security.Permissions.ReflectionPermissionFlag.MemberAccess.

FileIOPermission

Write=true or Append=true

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