ModuleBuilder.DefineResource Method
.NET Framework 1.1
Defines a managed embedded resource to be stored in this module.
Overload List
Defines the named managed embedded resource to be stored in this module.
[Visual Basic] Overloads Public Function DefineResource(String, String) As IResourceWriter
[C#] public IResourceWriter DefineResource(string, string);
[C++] public: IResourceWriter* DefineResource(String*, String*);
[JScript] public function DefineResource(String, String) : IResourceWriter;
Defines the named managed embedded resource with the given attributes that is to be stored in this module.
[Visual Basic] Overloads Public Function DefineResource(String, String, ResourceAttributes) As IResourceWriter
[C#] public IResourceWriter DefineResource(string, string, ResourceAttributes);
[C++] public: IResourceWriter* DefineResource(String*, String*, ResourceAttributes);
[JScript] public function DefineResource(String, String, ResourceAttributes) : IResourceWriter;
Example
[Visual Basic, C#, C++] The following code sample illustrates the use of DefineResource to add an external resource to the current ModuleBuilder.
[Visual Basic, C#, C++] Note This example shows how to use one of the overloaded versions of DefineResource. For other examples that might be available, see the individual overload topics.
[Visual Basic] Imports System Imports System.Reflection Imports System.Reflection.Emit Imports System.Resources Public Class CodeGenerator Public Sub New() ' Get the current application domain for the current thread. Dim currentDomain As AppDomain = AppDomain.CurrentDomain Dim myAssemblyName As New AssemblyName() myAssemblyName.Name = "TempAssembly" ' Define 'TempAssembly' assembly in the current application domain. Dim myAssemblyBuilder As AssemblyBuilder = currentDomain.DefineDynamicAssembly _ (myAssemblyName, AssemblyBuilderAccess.RunAndSave) ' Define 'TempModule' module in 'TempAssembly' assembly. Dim myModuleBuilder As ModuleBuilder = myAssemblyBuilder.DefineDynamicModule _ ("TempModule", "TempModule.netmodule", True) ' Define the managed embedded resource, 'MyResource' in 'TempModule' ' with the specified attribute. Dim writer As IResourceWriter = myModuleBuilder.DefineResource _ ("MyResource.resource", "Description", ResourceAttributes.Public) ' Add resources to the resource writer. writer.AddResource("String 1", "First String") writer.AddResource("String 2", "Second String") writer.AddResource("String 3", "Third String") myAssemblyBuilder.Save("MyAssembly.dll") End Sub 'New End Class 'CodeGenerator Public Class CallerClass Public Shared Sub Main() Dim myGenerator As New CodeGenerator() Console.WriteLine("A resource named 'MyResource.resource' has been created and can be " + _ "viewed in the 'MyAssembly.dll'") End Sub 'Main End Class 'CallerClass [C#] using System; using System.Reflection; using System.Reflection.Emit; using System.Resources; public class CodeGenerator { public CodeGenerator() { // Get the current application domain for the current thread. AppDomain currentDomain = AppDomain.CurrentDomain; AssemblyName myAssemblyName = new AssemblyName(); myAssemblyName.Name = "TempAssembly"; // Define 'TempAssembly' assembly in the current application domain. AssemblyBuilder myAssemblyBuilder = currentDomain.DefineDynamicAssembly (myAssemblyName, AssemblyBuilderAccess.RunAndSave); // Define 'TempModule' module in 'TempAssembly' assembly. ModuleBuilder myModuleBuilder = myAssemblyBuilder.DefineDynamicModule("TempModule", "TempModule.netmodule",true); // Define the managed embedded resource, 'MyResource' in 'TempModule' // with the specified attribute. IResourceWriter writer = myModuleBuilder.DefineResource("MyResource.resource", "Description",ResourceAttributes.Public); // Add resources to the resource writer. writer.AddResource("String 1", "First String"); writer.AddResource("String 2", "Second String"); writer.AddResource("String 3", "Third String"); myAssemblyBuilder.Save("MyAssembly.dll"); } } public class CallerClass { public static void Main() { CodeGenerator myGenerator = new CodeGenerator(); Console.WriteLine("A resource named 'MyResource.resource'" +" has been created and can be viewed in the 'MyAssembly.dll'"); } } [C++] #using <mscorlib.dll> using namespace System; using namespace System::Reflection; using namespace System::Reflection::Emit; using namespace System::Resources; public __gc class CodeGenerator { public: CodeGenerator() { // Get the current application domain for the current thread. AppDomain* currentDomain = AppDomain::CurrentDomain; AssemblyName* myAssemblyName = new AssemblyName(); myAssemblyName->Name = S"TempAssembly"; // Define 'TempAssembly' assembly in the current application domain. AssemblyBuilder* myAssemblyBuilder = currentDomain->DefineDynamicAssembly (myAssemblyName, AssemblyBuilderAccess::RunAndSave); // Define 'TempModule' module in 'TempAssembly' assembly. ModuleBuilder* myModuleBuilder = myAssemblyBuilder->DefineDynamicModule(S"TempModule", S"TempModule.netmodule", true); // Define the managed embedded resource, 'MyResource' in 'TempModule' // with the specified attribute. IResourceWriter* writer = myModuleBuilder->DefineResource(S"MyResource.resource", S"Description", ResourceAttributes::Public); // Add resources to the resource writer. writer->AddResource(S"String 1", S"First String"); writer->AddResource(S"String 2", S"Second String"); writer->AddResource(S"String 3", S"Third String"); myAssemblyBuilder->Save(S"MyAssembly.dll"); } }; int main() { CodeGenerator* myGenerator = new CodeGenerator(); Console::WriteLine(S"A resource named 'MyResource::resource' has been created and can be viewed in the 'MyAssembly.dll'"); }
[JScript] No example is available for JScript. To view a Visual Basic, C#, or C++ example, click the Language Filter button
in the upper-left corner of the page.
See Also
ModuleBuilder Class | ModuleBuilder Members | System.Reflection.Emit Namespace