AssemblyBuilder.DefineResource Méthode

Définition

Définit une ressource managée autonome pour cet assembly.

Surcharges

DefineResource(String, String, String)

Définit une ressource managée autonome pour cet assembly avec l’attribut de ressource public par défaut.

DefineResource(String, String, String, ResourceAttributes)

Définit une ressource managée autonome pour cet assembly. Des attributs peuvent être spécifiés pour la ressource managée.

DefineResource(String, String, String)

Définit une ressource managée autonome pour cet assembly avec l’attribut de ressource public par défaut.

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

Paramètres

name
String

Nom logique de la ressource.

description
String

Description textuelle de la ressource.

fileName
String

Nom du fichier physique (fichier .resources) auquel le nom logique est mappé. Le chemin ne doit pas être inclus.

Retours

Objet ResourceWriter pour la ressource spécifiée.

Exceptions

name a été défini précédemment.

- ou -

Il existe un autre fichier dans l’assembly nommé fileName.

- ou -

La longueur de name est égale à zéro.

- ou -

La longueur de fileName est égale à zéro.

- ou -

fileName inclut un chemin.

name ou fileName est null.

L'appelant n'a pas l'autorisation requise.

Exemples

L’exemple suivant utilise la DefineResource méthode pour obtenir un enregistreur de ressources. L’exemple utilise l’enregistreur de ressources pour ajouter trois chaînes de ressources.

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

Remarques

Des ressources de grain précis peuvent être ajoutées avec le retourné ResourceWriter en appelant AddResource.

fileName ne doit pas être identique à celui d’un autre module persistant, d’une ressource managée autonome ou du fichier manifeste autonome.

Le runtime appelle la Close méthode lorsque l’assembly dynamique est enregistré.

Note

À compter de .NET Framework 2.0 Service Pack 1, ce membre n’a plus besoin ReflectionPermission de l’indicateur ReflectionPermissionFlag.ReflectionEmit . (Consultez Problèmes de sécurité dans l’émission de réflexion.) Pour utiliser cette fonctionnalité, votre application doit cibler .NET Framework 3.5 ou version ultérieure.

S’applique à

.NET Framework 4.8.1 et autres versions
Produit Versions
.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)

Définit une ressource managée autonome pour cet assembly. Des attributs peuvent être spécifiés pour la ressource managée.

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

Paramètres

name
String

Nom logique de la ressource.

description
String

Description textuelle de la ressource.

fileName
String

Nom du fichier physique (fichier .resources) auquel le nom logique est mappé. Le chemin ne doit pas être inclus.

attribute
ResourceAttributes

Attributs de la ressource.

Retours

Objet ResourceWriter pour la ressource spécifiée.

Exceptions

name a déjà été défini ou il existe dans l’assembly un autre fichier nommé fileName.

- ou -

La longueur de name est égale à zéro.

- ou -

La longueur de fileName est égale à zéro.

- ou -

fileName inclut un chemin.

name ou fileName est null.

L'appelant n'a pas l'autorisation requise.

Remarques

Des ressources de grain précis peuvent être ajoutées avec le retourné ResourceWriter en appelant AddResource.

fileName ne doit pas être identique à celui d’un autre module persistant, d’une ressource managée autonome ou du fichier manifeste autonome.

Le runtime appelle la Close méthode lorsque l’assembly dynamique est enregistré.

Note

À compter de .NET Framework 2.0 Service Pack 1, ce membre n’a plus besoin ReflectionPermission de l’indicateur ReflectionPermissionFlag.ReflectionEmit . (Consultez Problèmes de sécurité dans l’émission de réflexion.) Pour utiliser cette fonctionnalité, votre application doit cibler .NET Framework 3.5 ou version ultérieure.

S’applique à

.NET Framework 4.8.1 et autres versions
Produit Versions
.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