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

学习c#反射的一个例子

2011-11-10 14:14 387 查看
using System;
using System.Reflection;

namespace TestReflection
{
class Program
{
static void Main(string[] args)
{
IName name = AbstractFactory.GetName();
name.ShowName();
}
}

//抽象工厂类
public class AbstractFactory
{
public static IName GetName()
{
string assemblyName = "TestReflection"; //类库名字

//className的值以后可以在Web.config动态获取
//把className赋值为:TestReflection.EnglishName,将显示英文名字
string className = "TestReflection.ChineseName";//类名字
IName name = (IName)Assembly.Load(assemblyName).CreateInstance(className);
return name;
}
}

//声明一个接口,它有一个显示“名字”的功能
public interface IName
{
void ShowName();
}

//实现接口,显示中国名字
public class ChineseName : IName
{
public void ShowName()
{
Console.WriteLine("我中文名字叫:罗宾汉");
Console.ReadLine();
}
}

//实现接口,显示英文名字
public class EnglishName : IName
{
public void ShowName()
{
Console.WriteLine("My name is : Robin Hood");
Console.ReadLine();
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: