反射-实例化一个未知的类(使用System.Activator类)
下面的例子教你如何通过反射-实例化一个未知的类(使用System.Activator类)
分两步来做:
第一步,新建一个类库,写入代码如下:
第二步,将类库的DLL文件复制到新建的程序集目录下,然后在程序集中加入如下代码:
注意:我加载程序集时使用的是Assembly.Load("wangjun") 字符串"wangjun"代表的是程序集的名称,是我在建立类库时在类库的项目中点右键属性在这个里面设置的名称,刚才加载的不是物理文件的名称,物理文件件的名称是"wangjun.dll",如果Assembly.Load()静态方法里面你如果添入物理名称的话,它会显示找不到文件FileNotFond
来源:http://2sws.blog.163.com/blog/static/179102492009843458495/
分两步来做:
第一步,新建一个类库,写入代码如下:
+展开
-C#
using System;
using System.Collections.Generic;
using System.Text;
namespace wangjun
{
public class wangjun
{
public int Sum(int i, int j)
{
return i + j;
}
}
}
using System.Collections.Generic;
using System.Text;
namespace wangjun
{
public class wangjun
{
public int Sum(int i, int j)
{
return i + j;
}
}
}
第二步,将类库的DLL文件复制到新建的程序集目录下,然后在程序集中加入如下代码:
+展开
-C#
using System;
using System.Reflection;
class program
{
static void Main()
{
Assembly asse = Assembly.Load("wangjun");
Type type = asse.GetType("wangjun.wangjun");
object obj = Activator.CreateInstance(type);
Console.WriteLine(obj);
Console.WriteLine(type.FullName);
}
}
using System.Reflection;
class program
{
static void Main()
{
Assembly asse = Assembly.Load("wangjun");
Type type = asse.GetType("wangjun.wangjun");
object obj = Activator.CreateInstance(type);
Console.WriteLine(obj);
Console.WriteLine(type.FullName);
}
}
注意:我加载程序集时使用的是Assembly.Load("wangjun") 字符串"wangjun"代表的是程序集的名称,是我在建立类库时在类库的项目中点右键属性在这个里面设置的名称,刚才加载的不是物理文件的名称,物理文件件的名称是"wangjun.dll",如果Assembly.Load()静态方法里面你如果添入物理名称的话,它会显示找不到文件FileNotFond
来源:http://2sws.blog.163.com/blog/static/179102492009843458495/
加支付宝好友偷能量挖...