AssemblyBuilder.DefineResource Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Definuje samostatný spravovaný prostředek pro toto sestavení.
Přetížení
| Name | Description |
|---|---|
| DefineResource(String, String, String) |
Definuje samostatný spravovaný prostředek pro toto sestavení s výchozím atributem veřejného prostředku. |
| DefineResource(String, String, String, ResourceAttributes) |
Definuje samostatný spravovaný prostředek pro toto sestavení. Pro spravovaný prostředek je možné zadat atributy. |
DefineResource(String, String, String)
Definuje samostatný spravovaný prostředek pro toto sestavení s výchozím atributem veřejného prostředku.
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
Parametry
- name
- String
Logický název prostředku.
- description
- String
Textový popis prostředku.
- fileName
- String
Fyzický název souboru (soubor .resources), na který je namapovaný logický název. Tato cesta by neměla obsahovat cestu.
Návraty
Objekt ResourceWriter pro zadaný prostředek.
Výjimky
name byla dříve definována.
nebo
V sestavení s názvem fileNameje jiný soubor .
nebo
Délka name je nula.
nebo
Délka fileName je nula.
nebo
fileName obsahuje cestu.
name nebo fileName je null.
Volající nemá požadované oprávnění.
Příklady
Následující příklad používá metodu DefineResource k získání zapisovače prostředků. Příklad používá zapisovač prostředků k přidání tří řetězců prostředků.
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
Poznámky
Jemně odstupňované prostředky lze přidat s vráceným ResourceWriter voláním AddResource.
fileName nemělo by být stejné jako jakýkoli jiný trvalý modul, samostatný spravovaný prostředek nebo samostatný soubor manifestu.
Modul runtime volá metodu Close při uložení dynamického sestavení.
Platí pro
DefineResource(String, String, String, ResourceAttributes)
Definuje samostatný spravovaný prostředek pro toto sestavení. Pro spravovaný prostředek je možné zadat atributy.
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
Parametry
- name
- String
Logický název prostředku.
- description
- String
Textový popis prostředku.
- fileName
- String
Fyzický název souboru (soubor .resources), na který je namapovaný logický název. Tato cesta by neměla obsahovat cestu.
- attribute
- ResourceAttributes
Atributy prostředku.
Návraty
Objekt ResourceWriter pro zadaný prostředek.
Výjimky
name byla dříve definována nebo existuje-li v sestavení s názvem fileNamejiný soubor .
nebo
Délka name je nula.
nebo
Délka fileName je nula.
nebo
fileName obsahuje cestu.
name nebo fileName je null.
Volající nemá požadované oprávnění.
Poznámky
Jemně odstupňované prostředky lze přidat s vráceným ResourceWriter voláním AddResource.
fileName nemělo by být stejné jako jakýkoli jiný trvalý modul, samostatný spravovaný prostředek nebo samostatný soubor manifestu.
Modul runtime volá metodu Close při uložení dynamického sestavení.