comparison Source/Reflection/Emit/Examples.VB.xml @ 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 <?xml version="1.0" encoding="utf-8" ?>
2 <examples>
3
4 <emit name="Emit">
5 <example>
6 <code lang="VB">
7 Imports System
8 Imports NUnit.Framework
9
10 Imports BLToolkit.Reflection
11 Imports BLToolkit.Reflection.Emit
12
13 Namespace Examples.Reflection.Emit
14
15 &lt;TestFixture()&gt; _
16 Public Class HelloWorld
17
18 Public Interface IHello
19 Sub SayHello(ByVal toWhom As String)
20 End Interface
21
22 &lt;Test()&gt; _
23 Sub Test()
24 Dim assemblyHelper As AssemblyBuilderHelper = New AssemblyBuilderHelper("HelloWorld.dll")
25 Dim typeHelper As TypeBuilderHelper = assemblyHelper.DefineType("Hello", GetType(Object), GetType(IHello))
26 Dim methodHelper As MethodBuilderHelper = typeHelper.DefineMethod(GetType(IHello).GetMethod("SayHello"))
27 Dim emit As EmitHelper = methodHelper.Emitter
28
29 ' string.Format("Hello, {0} World!", toWhom)
30 '
31 emit _
32 .ldstr("Hello, {0} World!") _
33 .ldarg_1 _
34 .call(GetType(String), "Format", GetType(String), GetType(Object))
35
36 ' Console.WriteLine("Hello, World!");
37 '
38 emit _
39 .call(GetType(Console), "WriteLine", GetType(String)) _
40 .ret()
41
42 Dim type As Type = typeHelper.Create()
43
44 Dim hello As IHello = TypeAccessor.CreateInstance(type)
45
46 hello.SayHello("VB")
47 End Sub
48
49 End Class
50
51 End Namespace
52 </code>
53 </example>
54 </emit>
55
56
57 </examples>