AssemblyBuilder.DefineResource Metod

Definition

Definierar en fristående hanterad resurs för den här sammansättningen.

Överlagringar

Name Description
DefineResource(String, String, String)

Definierar en fristående hanterad resurs för den här sammansättningen med standardattributet för offentlig resurs.

DefineResource(String, String, String, ResourceAttributes)

Definierar en fristående hanterad resurs för den här sammansättningen. Attribut kan anges för den hanterade resursen.

DefineResource(String, String, String)

Definierar en fristående hanterad resurs för den här sammansättningen med standardattributet för offentlig resurs.

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

Parametrar

name
String

Resursens logiska namn.

description
String

En textbeskrivning av resursen.

fileName
String

Det fysiska filnamnet (.resources-filen) som det logiska namnet mappas till. Detta bör inte innehålla en sökväg.

Returer

Ett ResourceWriter objekt för den angivna resursen.

Undantag

name har definierats tidigare.

-eller-

Det finns en annan fil i sammansättningen med namnet fileName.

-eller-

Längden name på är noll.

-eller-

Längden fileName på är noll.

-eller-

fileName innehåller en sökväg.

name eller fileName är null.

Anroparen har inte den behörighet som krävs.

Exempel

I följande exempel används DefineResource metoden för att hämta en resursskrivare. I exemplet används resursskrivaren för att lägga till tre resurssträngar.

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

Kommentarer

Detaljerade resurser kan läggas till med returen ResourceWriter genom att anropa AddResource.

fileName bör inte vara samma som för någon annan beständig modul, fristående hanterad resurs eller den fristående manifestfilen.

Körningen Close anropar metoden när den dynamiska sammansättningen sparas.

Gäller för

DefineResource(String, String, String, ResourceAttributes)

Definierar en fristående hanterad resurs för den här sammansättningen. Attribut kan anges för den hanterade resursen.

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

Parametrar

name
String

Resursens logiska namn.

description
String

En textbeskrivning av resursen.

fileName
String

Det fysiska filnamnet (.resources-filen) som det logiska namnet mappas till. Detta bör inte innehålla en sökväg.

attribute
ResourceAttributes

Resursattributen.

Returer

Ett ResourceWriter objekt för den angivna resursen.

Undantag

name har definierats tidigare eller om det finns en annan fil i sammansättningen med namnet fileName.

-eller-

Längden name på är noll.

-eller-

Längden fileName på är noll.

-eller-

fileName innehåller en sökväg.

name eller fileName är null.

Anroparen har inte den behörighet som krävs.

Kommentarer

Detaljerade resurser kan läggas till med returnerade ResourceWriter genom att anropa AddResource.

fileName bör inte vara samma som för någon annan beständig modul, fristående hanterad resurs eller den fristående manifestfilen.

Körningen Close anropar metoden när den dynamiska sammansättningen sparas.

Gäller för