是实现抽象工厂的基础,也是实现抽象工厂的核心技术,通过它,可以动态创建一个你想要的对象.如下面的例子是演示如何动态创建ChineseName或EnglishName的实例
using System; using System.Reflection; namespace TestReflection { class AXzhz_sReflectionExample { public static void Main() { IName name=AbstractFactory.GetName(); name.ShowName(); } } public class AbstractFactory { public static IName GetName() { //s的值以后从Web.config动态获取 //把s赋值为:TestReflection.EnglishName,将显示英文名 string s = "TestReflection.ChineseName"; IName name = (IName)Assembly.Load("TestReflection").CreateInstance(s); return name; } } //声明一个接口,它有一个显示"名字"的功能 public interface IName { void ShowName(); } //实现接口,显示中国名字 public class ChineseName : IName { public void ShowName() { Console.WriteLine("我叫AX!"); Console.ReadLine(); } } //实现接口,显示英国名字 public class EnglishName:IName { void IName.ShowName() { Console.WriteLine("My name is AXzhz!"); Console.ReadLine(); } } }