您的位置:首页 > 编程语言 > C#

C#反射Reflection

2008-04-29 11:27 274 查看
是实现抽象工厂的基础,也是实现抽象工厂的核心技术,通过它,可以动态创建一个你想要的对象.如下面的例子是演示如何动态创建ChineseName或EnglishName的实例

using System;

2using System.Reflection;

3namespace TestReflection

4{

5 class AXzhz_sReflectionExample

6 {

7 public static void Main()

8 {

9 IName name=AbstractFactory.GetName();

10 name.ShowName();

11 }

12 }

13

14 public class AbstractFactory

15 {

16 public static IName GetName()

17 {

18 //s的值以后从Web.config动态获取

19 //把s赋值为:TestReflection.EnglishName,将显示英文名

20 string s = "TestReflection.ChineseName";

21 IName name = (IName)Assembly.Load("TestReflection").CreateInstance(s);

22 return name;

23 }

24 }

25

26 //声明一个接口,它有一个显示"名字"的功能

27 public interface IName

28 {

29 void ShowName();

30 }

31

32 //实现接口,显示中国名字

33 public class ChineseName : IName

34 {

35 public void ShowName()

36 {

37 Console.WriteLine("我叫AX!");

38 Console.ReadLine();

39 }

40 }

41

42 //实现接口,显示英国名字

43 public class EnglishName:IName

44 {

45 void IName.ShowName()

46 {

47 Console.WriteLine("My name is AXzhz!");

48 Console.ReadLine();

49 }

50 }

51}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: