How will u load dynamic assembly? How will create assemblies
at run time?
Answer Posted / ruena
You can create an assembly at runtime in the following
way...
The following example creates an assebly, class within it
and also defines the main method.
You can use dynamic invocation methods to execute the
assembly.
Make use of System.Reflection and System.Reflection.Emit
namespaces. Hope you find this useful.
public static void Main()
{
// 1.
// Create a new dynamic assembly
AssemblyName assemblyName = new AssemblyName
("DynamicHelloWorld");
AssemblyBuilder dynamicAssembly =
AppDomain.CurrentDomain.DefineDynamicAssembly(
assemblyName,
AssemblyBuilderAccess.RunAndSave);
// 2.
// Create a module inside the assembly
ModuleBuilder dynamicModule =
dynamicAssembly.DefineDynamicModule(
assemblyName.Name,
"DynamicHelloWorld
.exe");
//3.
// Create a type inside the module
TypeBuilder programType =
dynamicModule.DefineType(
"DynamicHelloWorld.Pro
gram",
TypeAttributes.Class
| TypeAttributes.Public);
// 4.
// Add a method
MethodBuilder main = programType.DefineMethod(
"Main",
MethodAttributes.Public |
MethodAttributes.Static,
null,
null);
// 5.
// Add the IL for the method. The IL is
equivalent to
// Console.WriteLine("Hello, world!");
Type console = typeof(Console);
MethodInfo writeLine = console.GetMethod(
"WriteLine",
new Type[] { typeof
(string) });
ILGenerator il = main.GetILGenerator();
il.Emit(OpCodes.Ldstr, "Hello, world!");
il.Emit(OpCodes.Call, writeLine);
// 6.
// Set the return value to 0
//il.Emit(OpCodes.Ldc_I4_0);
//il.Emit(OpCodes.Ret);
// 7.
// Now we're done, materialize the type
programType.CreateType();
// 8.
// Set the program's entry point to the Main
method
dynamicAssembly.SetEntryPoint(main,
PEFileKinds.ConsoleApplication);
// 9.
// Save the assembly
dynamicAssembly.Save("DynamicHelloWorld.exe");
Console.Write("Dynamic Assembly Emitted...");
}
| Is This Answer Correct ? | 4 Yes | 0 No |
Post New Answer View All Answers
Explain me how does linq work?
What is the root class in .net?
What is Event - Delegate? clear syntax for writing a event delegate
Explain the difference between managed and unmanaged code?
What is the benefit of .net core?
If we write any code for DataGrid methods, what is the access specifier used for that methods in the code behind file and why?
Differences between dll and exe?
What is Full trust permission set in .Net
What is the use of gacutil.exe?
What are the different types of Classes in .NET?
Difference between abstract class and interface in .net?
Explain what rare the types of jit and what is econo-jit?
I want to serialize instances of my class. Should I use xmlserializer, soapformatter or binaryformatter?
Difference between class and interface in .net?
What is machine.config in .net?