比方,我在配置文件里面设定了<ClassInfo ClassName = "Class1"></ClassInfo>
然后我就可以取到他的类名是Class1了,然后我想实现Class1 class1 = new Class1();这样的代码,也就是这个代码里面的类名是和我的配置文件有关的,能不能作到啊?
如果用名字不行,那么用类型可以吗?比方我知道了某个Type a = typeof(Class1);同样的我希望能够通过a实现上面的代码,可以吗?
然后我就可以取到他的类名是Class1了,然后我想实现Class1 class1 = new Class1();这样的代码,也就是这个代码里面的类名是和我的配置文件有关的,能不能作到啊?
如果用名字不行,那么用类型可以吗?比方我知道了某个Type a = typeof(Class1);同样的我希望能够通过a实现上面的代码,可以吗?
http://blog.csdn.net/knight94/archive/2006/05/17/742324.aspx
中使用Type.InvokeMember的部分
object obj = System.Activator.CreateInstance(type);
type.GetMethod("method name").Invoke(obj,new object[]{"参数1","参数2"});
因为我设计的时候我的基类是Abstract的,我现在要做的主要是针对VS 2005里面的BindingSource,我想把里面的Current对象转换为Class1,但是不希望通过直接写(Class1)BindingSource.Current来实现,而希望这个Class1可以通过配置文件读取进来,大家帮我想想办法啊
使用反射生成一个窗体:
private void button1_Click(object sender, System.EventArgs e)
{
Assembly assm = Assembly.LoadFrom("e:\\WindowsApplication.dll");
Type TypeToLoad= assm.GetType("WindowsApplication.Form1");
object obj;
obj = Activator.CreateInstance(TypeToLoad);
Form formToShow = null;
formToShow = (Form)obj;
formToShow.Show();
}
有没有办法基类不出现的
在你的这个例子里面WindowsApplication.Form1是从Form里面继承过来的,我希望可以不出现基类Form