Mercurial > pub > bltoolkit
comparison Tools/DocGen/Content/Doc/Reflection/Emit/HelloWorld.htm @ 0:f990fcb411a9
Копия текущей версии из github
author | cin |
---|---|
date | Thu, 27 Mar 2014 21:46:09 +0400 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:f990fcb411a9 |
---|---|
1 <p>The <b>System.Reflection.Emit</b> namespace provides classes to create dynamic assemblies at runtime. | |
2 It allows compilers and tools to emit <b>MSIL</b>, execute it and store it to a disk. | |
3 Although <b>Emit</b> is a powerful tool, it is also extremely hard to use.</p> | |
4 <p>Let us take a look at the following example, which demonstrates the "normal" way of emit programming:</p> | |
5 | |
6 HelloWorld.cs | |
7 <% ..\..\..\Examples\CS\Reflection.Emit\HelloWorldnormal.cs %> | |
8 | |
9 <p>Note that the Emit method takes one parameter as an OpCode and optionally another one, | |
10 which does not depend on the current operation context. So, this way is not entirely type safe.</p> | |
11 | |
12 <p>Fortunately, there is an alternative way. BLToolkit provides a helper class, | |
13 <a href='/Source/Reflection/Emit/EmitHelper.cs.htm'>EmitHelper</a>, | |
14 which can make your life a little bit easy. | |
15 It contains typed wrapper methods for almost all emit commands and allows writing source code | |
16 that looks similar to <b>MSIL</b>.</p> | |
17 <p>The following examples show how to use the EmitHelper class with C#, VB.NET, and C++/CLI.</p> | |
18 | |
19 HelloWorld.cs | |
20 <% ..\..\..\Examples\CS\Reflection.Emit\HelloWorld.cs %> | |
21 Cool!!! Isn't it?<br><br> | |
22 | |
23 HelloWorld.vb | |
24 <% ..\..\..\Examples\VB\Reflection.Emit\HelloWorld.vb %> | |
25 | |
26 HelloWorld.cpp | |
27 <% ..\..\..\Examples\Cpp\HelloWorld.cpp %> |