读书人

重分求反照最简单一个例子

发布时间: 2011-12-17 23:37:33 作者: rapoo

重分求反射最简单一个例子
我给你一个字符串,你给我反射出一个对象,大概是这个意思,
哪个高手写个demo我看下,非常非常非常的感谢

[解决办法]

C# code
   Type t = Type.GetType("System.Int32[]");   int[] array = new int[10];//初始化数组长度为10   array = (int[])(t.InvokeMember("Set", BindingFlags.CreateInstance,null, array, new object[] { 5 }));//这里将它的长度变为5看看是否能成功   Console.WriteLine(array.Length);
[解决办法]
http://www.cnblogs.com/sleepywang/archive/2008/04/04/1137314.html
[解决办法]
这里的className就是一个类的名字是一个字符串

System.Reflection.Assembly ass = System.Reflection.Assembly.Load(nameSpace); //nameSpace并不是名称空间,而是程序集名称
object obj = ass.CreateInstance(className);
Iobject op = (Iobject)obj;//Iobject为抽象类,是className的父类

[解决办法]
貌似这不应该叫反射,而是动态编译的问题.
[解决办法]
是什么样的字符串呢?如果是程序集全名称,那就更容易了
C# code
Type t = Type.GetType(assembleFullName);object instance = Activator.CreateInstance(t);
[解决办法]
http://blog.csdn.net/jinjazz/archive/2009/02/10/3872871.aspx
[解决办法]
先做个记号··
[解决办法]
????
[解决办法]
在只知道字符串的情况下
如果是一个dll的完整路径。
先加载此dll然后
1获取所有的类型信息
2获取某个类型的构造函数列表
3使用某个构造函数的参数和列表类型信息
4使用该构造函数构造一个对象
[解决办法]
学习一下。。
[解决办法]
还是有些模糊
[解决办法]
using System.Reflection
新建对象:
object obj = Type.GetType(类名+","+名称空间).InvokeMember(null, BindingFlags.CreateInstance |BindingFlags.Instance | BindingFlags.Public, null, null, null);
[解决办法]
http://edu.itbulo.com/200608/104156.htm
这个可能参考一下
[解决办法]
mark下

读书人网 >C#

热点推荐