How will u load dynamic assembly? How will create assemblies
at run time?
Answer / 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 |
How to manage pagination in a page using .net?
What is different between Web User Control and Web Custom Control?
Explain what do the terms “boxing” and “unboxing” mean?
Why did they call it .net?
Explain can 2 different applications use the same dll in gac at the same time?
Explain dataset.acceptchanges and dataadapter.update methods in .net?
what is the keyword used for self reference?
Best Dot Net Center in Chennai ?
Explain the two different types of typecasting?
Explain About GDI object ?
Describe the difference between inline and code behind which is best in a loosely coupled solution?
As you know read-only variables and constants have many similarities, but what is at least one way that they differ?