搜索
我的图书馆
查看信箱
系统消息
官方通知
设置
开始对话
有
11
人和你对话,
查看
忽略
历史对话记录
通知设置
发文章
发文工具
撰写
网文摘手
文档
视频
思维导图
随笔
相册
原创同步助手
其他工具
图片转文字
文件清理
AI助手
留言交流
搜索
分享
QQ空间
QQ好友
新浪微博
微信
生成长图
转Word
打印
朗读
全屏
修改
转藏
+1
反射(转)
牛人的尾巴
2015-10-28
|
转藏
大
中
小
展开全文
反射(转)- 3
(2010-05-05 15:49:38)
标签:
杂谈
分类:
C#
④动态创建对象实例【经典】
是实现抽象工厂的基础,也是实现抽象工厂的核心技术,通过它,可以动态创建一个你想要的对象.如下面的例子是演示如何动态创建ChineseName或EnglishName的实例
1
using
System;
2
using
System.Reflection;
3
namespace
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!");