通常基于xml配置文件创建一个类使用反射机制:string _class = xnf1[0].InnerText;
string _file = xnf1[1].InnerText;Assembly ass = Assembly.LoadFrom(_file);
Type _Asstype = ass.GetType(_class);
_class instance = Activator.CreateInstance(_Asstype) as _class;
很显然,最后一句是行不通的,因为这里需要的是类类型。如果不硬编码,而自动创建(XML中有很多这种类),该如何实现那???
盼高手指点一二!
string _file = xnf1[1].InnerText;Assembly ass = Assembly.LoadFrom(_file);
Type _Asstype = ass.GetType(_class);
_class instance = Activator.CreateInstance(_Asstype) as _class;
很显然,最后一句是行不通的,因为这里需要的是类类型。如果不硬编码,而自动创建(XML中有很多这种类),该如何实现那???
盼高手指点一二!
解决方案 »
- c#中一个int类型变量的值存放在哪里?
- xml反序列化的问题(某个节点可能有,也可能没有,如何处理)
- 我在项目里面添加了一个引用,但是没有在这个项目的程序集中显示。
- 进一步..c#循环添加 HtmlTableCell[][] td 的问题
- 请给我个理由.net?
- 新人求教关于C#中对动态生成的按钮如何实现每一次只能对一个按钮操作的问题
- 现有一个程序是用C#写的Windows程序,有一段加密狗的程序,想把它去掉运行,如何做?
- 麻烦有经验的回答我一下!!!
- 调用CA服务器出现Forbidden错误,怎么回事?
- 为什么Gridview中的OnRowCommand函数始终不被触发,调试了根本就没进入_RowCommand函数
- c# 如何判断mdb数据库中是否存在某个表
- 关于return
这一句是错的,因为_class在这里是string 而不是class。
不可能用_class instance 创造的,
除非你知道这个类可以强制转换
object instance = Activator.CreateInstance(_Asstype);
classname _class = (classname)instance
此处的classname是一个类
"System.Windows.Forms.ListBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
这个怎么实现??能不能给一点实例??
lovefootball
你的链接我看了,但是你好像没有明白我的意思:
如果你知道这个类里有个方法Func(string s),一个参数string
那么你可以用
设置参数
System.Type[] paramTypes = new System.Type[1];
paramTypes[0] = System.Type.GetType("System.String");
System.Reflection.MethodInfo mi = t.GetMethod("Func", paramTypes);
设置值
//参数值
Object[] parameters = new Object[1];
parameters[0] = "abc";
Object returnValue = mi.Invoke(instance, parameters); //instance是你上面得到的类的实例有关一个类里有什么方法和这个方法需要什么参数,也可以用反射得到。你可以从MSDN中查找一下或从网上查找一下吧。
你的链接我看了,但是你好像没有明白我的意思:
------->
貌似是你没理解反射的概念~~~~~~~~
通过链接的例子你还可以查找MSDN可以知道调用属性或者字段的方法不知道你还想干什么~~~~~~~~