How will u load dynamic assembly? How will create assemblies
at run time?



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

Post New Answer

More Dot Net General Interview Questions

What is boxing?

3 Answers  


Will it go to finally block if there is no exception happened?

0 Answers  


What's typical about a windows process in regards to memory allocation in .net?

0 Answers  


What is the difference between asp.net and asp?

0 Answers  


What is Method Overriding? How to override a function in C#?

1 Answers  






Explain can 2 different applications use the same dll in gac at the same time?

0 Answers  


What is manifest in .net?

0 Answers  


What are the differences between an interface and an abstract class in .net?

0 Answers  


What?s a Windows process?

1 Answers  


Explain the process of compilation in .NET?

0 Answers  


What is a delegate, How many types of delegates?

4 Answers  


What is Nothing permission set in .Net

1 Answers  


Categories