Golgappa.net | Golgappa.org | BagIndia.net | BodyIndia.Com | CabIndia.net | CarsBikes.net | CarsBikes.org | CashIndia.net | ConsumerIndia.net | CookingIndia.net | DataIndia.net | DealIndia.net | EmailIndia.net | FirstTablet.com | FirstTourist.com | ForsaleIndia.net | IndiaBody.Com | IndiaCab.net | IndiaCash.net | IndiaModel.net | KidForum.net | OfficeIndia.net | PaysIndia.com | RestaurantIndia.net | RestaurantsIndia.net | SaleForum.net | SellForum.net | SoldIndia.com | StarIndia.net | TomatoCab.com | TomatoCabs.com | TownIndia.com
Interested to Buy Any Domain ? << Click Here >> for more details...

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


Please Help Members By Posting Answers For Below Questions

Is .net 4.8 backwards compatible?

1024


Explain Creational design pattern in .NET?

1091


What are situations when you register .NET assembly in GAC ?

1084


what is the meaning silverligt control

2123


Explain the difference between constants and read-only variables?

1081


How many namespaces are in .net version 1.1?

1149


What is connected and diconnected database ?

1054


What is a formatter in .net?

1035


What is a garbage collector?

1135


Explain me what is an anonymous method and how is it different from a lambda expression?

1008


What is Complex Class in .NET?

1033


What is class library in .net

1110


Do I have any control over the garbage collection algorithm?

1046


If you are executing these statements in commandobject. Select * from table1; select * from table2? How you will deal result set? 42. How do you sort a dataset.

989


Why did they call it .net?

1038