AssemblyBuilder.DefineResource Methode

Definition

Definiert eine eigenständige verwaltete Ressource für diese Assembly.

Überlädt

Name Beschreibung
DefineResource(String, String, String)

Definiert eine eigenständige verwaltete Ressource für diese Assembly mit dem standardmäßigen öffentlichen Ressourcenattribut.

DefineResource(String, String, String, ResourceAttributes)

Definiert eine eigenständige verwaltete Ressource für diese Assembly. Attribute können für die verwaltete Ressource angegeben werden.

DefineResource(String, String, String)

Definiert eine eigenständige verwaltete Ressource für diese Assembly mit dem standardmäßigen öffentlichen Ressourcenattribut.

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

Parameter

name
String

Der logische Name der Ressource.

description
String

Eine Textbeschreibung der Ressource.

fileName
String

Der physische Dateiname (RESSOURCEN-Datei), dem der logische Name zugeordnet ist. Dies sollte keinen Pfad enthalten.

Gibt zurück

Ein ResourceWriter Objekt für die angegebene Ressource.

Ausnahmen

name wurde zuvor definiert.

-oder-

Es gibt eine weitere Datei in der Assembly mit dem Namen fileName.

-oder-

Die Länge von name 0 ist null.

-oder-

Die Länge von fileName 0 ist null.

-oder-

fileName enthält einen Pfad.

name oder fileName ist null.

Der Aufrufer verfügt nicht über die erforderliche Berechtigung.

Beispiele

Im folgenden Beispiel wird die DefineResource Methode verwendet, um einen Ressourcenschreiber abzurufen. Im Beispiel wird der Ressourcenschreiber verwendet, um drei Ressourcenzeichenfolgen hinzuzufügen.

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

Hinweise

Feinkornressourcen können mit dem zurückgegebenen ResourceWriter durch Aufrufen AddResourcehinzugefügt werden.

fileName sollte nicht mit dem eines anderen dauerhaften Moduls, einer eigenständigen verwalteten Ressource oder einer eigenständigen Manifestdatei identisch sein.

Die Laufzeit ruft die Close Methode auf, wenn die dynamische Assembly gespeichert wird.

Gilt für:

DefineResource(String, String, String, ResourceAttributes)

Definiert eine eigenständige verwaltete Ressource für diese Assembly. Attribute können für die verwaltete Ressource angegeben werden.

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

Parameter

name
String

Der logische Name der Ressource.

description
String

Eine Textbeschreibung der Ressource.

fileName
String

Der physische Dateiname (RESSOURCEN-Datei), dem der logische Name zugeordnet ist. Dies sollte keinen Pfad enthalten.

attribute
ResourceAttributes

Die Ressourcenattribute.

Gibt zurück

Ein ResourceWriter Objekt für die angegebene Ressource.

Ausnahmen

name wurde zuvor definiert, oder wenn eine andere Datei in der Assembly mit dem Namen vorhanden fileNameist.

-oder-

Die Länge von name 0 ist null.

-oder-

Die Länge von fileName 0 ist null.

-oder-

fileName enthält einen Pfad.

name oder fileName ist null.

Der Aufrufer verfügt nicht über die erforderliche Berechtigung.

Hinweise

Feinkornressourcen können mit dem zurückgegebenen ResourceWriter durch Aufrufen AddResourcehinzugefügt werden.

fileName sollte nicht mit dem eines anderen dauerhaften Moduls, einer eigenständigen verwalteten Ressource oder der eigenständigen Manifestdatei übereinstimmen.

Die Laufzeit ruft die Close Methode auf, wenn die dynamische Assembly gespeichert wird.

Gilt für: