反射创建一个对象:
Object ob = System.Reflection.Assembly.GetExecutingAssembly().CreateInstance(命名空间+程序集+类名);
Object obt=System.Reflection.Assembly.GetExecutingAssembly().CreateInstance(命名空间+程序集+类名);
implEmployee imlemp=null; --这个呢就是一个接口,有了他我们就不着急类的不匹配,将ob赋给接口就好啦!
if (ob != null)
{
imlemp = (implEmployee)ob;
}
if (imlemp != null)
{
dt=new DataTable();
dt=imlemp.GetDataTable("", "");
}
反射动态创建对象:
如果A,B,C,D都与执行代码同一个程序集.则可以这样调用
System.Reflection.Assembly.GetExecutingAssembly().CreateInstance("命名空间.类名", false);
如:
object o = System.Reflection.Assembly.GetExecutingAssembly().CreateInstance("MyNameSpace.A", false);
不同程序集的话.则要装载调用.如下:
System.Reflection.Assembly.Load("程序集名称").CreateInstance("命名空间.类名", false);
如:
object o = System.Reflection.Assembly.Load("MyDll").CreateInstance("MyNameSpace.A", false);
动态创建后再将o强制转换为IChar接口,如下:
IChar ichar = o as IChar;