annotate Source/Reflection/Emit/Examples.CS.xml @ 3:1ef98bd70424

!bug 100 +3h Исправление проблемы BLToolkit + mono 3.4
author cin
date Fri, 22 Aug 2014 17:34:46 +0400
parents f990fcb411a9
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
1 <?xml version="1.0" encoding="utf-8" ?>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
2 <examples>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
3
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
4 <emit name="Emit">
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
5 <example>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
6 <code lang="C#">
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
7 using System;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
8
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
9 using NUnit.Framework;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
10
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
11 using BLToolkit.Reflection;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
12 using BLToolkit.Reflection.Emit;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
13
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
14 namespace Examples.Reflection.Emit
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
15 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
16 [TestFixture]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
17 public class HelloWorld
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
18 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
19 public interface IHello
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
20 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
21 void SayHello(string toWhom);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
22 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
23
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
24 [Test]
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
25 public void Test()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
26 {
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
27 EmitHelper emit = new AssemblyBuilderHelper("HelloWorld.dll")
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
28 .DefineType ("Hello", typeof(object), typeof(IHello))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
29 .DefineMethod(typeof(IHello).GetMethod("SayHello"))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
30 .Emitter;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
31
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
32 /*[a]*/emit/*[/a]*/
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
33 // string.Format("Hello, {0}!", toWhom)
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
34 //
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
35 ./*[a]*/ldstr/*[/a]*/ ("Hello, {0}!")
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
36 ./*[a]*/ldarg_1/*[/a]*/
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
37 ./*[a]*/call/*[/a]*/ (typeof(string), "Format", typeof(string), typeof(object))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
38
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
39 // Console.WriteLine("Hello, World!");
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
40 //
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
41 ./*[a]*/call/*[/a]*/ (typeof(Console), "WriteLine", typeof(string))
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
42 ./*[a]*/ret/*[/a]*/()
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
43 ;
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
44
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
45 Type type = emit.Method.Type.Create();
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
46
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
47 IHello hello = (IHello)TypeAccessor.CreateInstance(type);
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
48
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
49 hello.SayHello("World");
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
50 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
51 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
52 }
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
53 </code>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
54 </example>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
55 </emit>
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
56
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
57
f990fcb411a9 Копия текущей версии из github
cin
parents:
diff changeset
58 </examples>