使用反射!
Type t = Type.GetType("someClassName");
t = Assembly.GetAssembly(t).GetType("someClassName");
object o = Activator.CreateInstance(t);//这样就得到了实例
Type t = Type.GetType("someClassName");
t = Assembly.GetAssembly(t).GetType("someClassName");
object o = Activator.CreateInstance(t);//这样就得到了实例
解决方案 »
- dev控件的使用GridControl怎么清空表中的内容
- 谁能给我一份图书管理系统的源码呀!
- 如何将XPathNavigator节点转成对应的xmlnode节点
- 这三个ToString是什么关系?
- 菜鸟请教一个c#概念性的问题. 在线等,急!!!!!
- 数据库应用中MDI中各子窗口的数据怎么同步?
- 在.net精简版中,如何读取XML文件????????????????????????????????????????
- 怎么录制在自己程序中的操作,给点思路
- 请教一MDI程序的问题
- vs-c#中,#region..........#endregion是什么意思???
- 未将对象引用设置到对象的实例。引起这一问题的原因?
- 怎么根据返回的一个object类型变量里值的类型,定义一个这种类型的数组
而且像Form aa = new Form();我都是存在数据库里,如果能把这个字符串当成
语句执行是最好的呢,希望你能帮我,谢谢
就像数据库里有 exec 'selct * from Table' 一样
调用方法exec(str);是弹出这个窗体,而不是这个字符串
"Form"类里的方法,属性都用什么样的方式存在?
我要怎么处理这个字符串就相当于new 多少个窗体
string str="Form aa = new Form()"
......
回家想想!还有5分钟就要下班了!
用的就是动态编译的技术
楼主可去查查看.
http://www.c-sharpcorner.com/Code/2002/April/LoadingAssemblyInfo.asp
使用反射生成一个窗体:
private void button1_Click(object sender, System.EventArgs e)
{
Assembly assm = Assembly.LoadFrom("e:\\WindowsApplication5.dll");
Type TypeToLoad= assm.GetType("WindowsApplication5.Form1");
object obj;
obj = Activator.CreateInstance(TypeToLoad);
Form formToShow = null;
formToShow = (Form)obj;
formToShow.Show();
}
try {
mItemClass mi = sender as mItemClass;
string []strTemp = mi.Form.ToString().Split(';');
Assembly ass =Assembly.LoadFrom(Application.StartupPath+"\\RNP.UI.dll");
Type tp = ass.GetType(strTemp[0],false,true);
// Type tp = ass.GetType("RNP.UI.BaseData.RetailConsignAdd",false,true); BindingFlags bflags = BindingFlags.DeclaredOnly | BindingFlags.Public
| BindingFlags.NonPublic | BindingFlags.Instance;
//调用构造函数并获得对象
object[] arg=new object[]{this,this.mUserInfo};
object obj = tp.InvokeMember(strTemp[1], bflags |
BindingFlags.CreateInstance, null, null, arg);// (obj as RNP.UI.IForm).CreateFrm(this,this.mUserInfo);
}
catch(Exception ex) {
MessageBox.Show("打开窗体失败!!!"+ex.Message,"错误信息",MessageBoxButtons.OK,MessageBoxIcon.Error);
}
}
窗体又没有这种问题:在RNP.UI里找不到资源文件