//dll所在路径
string path = "d:/a.dll";
//获取dll
Assembly asm = Assembly.LoadFile(path);
//获取类型
Type type = asm.GetType("包的命名空间.类名");
//获取方法
MethodInfo methed = type.GetMethod("方法名");
//创建对象的实例
object instance = Activator.CreateInstance(type);
//执行方法
var result = methed.Invoke(instance, new object[] {参数1,参数2});
//dll所在路径 string path = "d:/a.dll"; //获取dll Assembly asm = Assembly.LoadFile(path); //获取类型 Type type = asm.GetType("包的命名空间.类名"); ...
//加载程序集(
dll
文件地址),使用Assembly类
Assembly assembly = Assembly.LoadFile(AppDomain.CurrentDomain.BaseDirectory + "Bin/XX.Common.
dll
");
//获取类型,参数(命名空间.类名)
最近在看工厂开发模式,发现用到了
反射
,之前只听说过也没怎么用过;所以花了点时间重新温习了一遍;
反射
的作用是动态的加载某个
dll
(程序集),并执行该程序集中的某个
方法
,并返回结果;当然也可以给该
方法
传递参数
namespace assembly_name
public class assembly_class
public str
使用
反射
(Reflect)获取
dll
文件中的类型并
调用
方法
需引用:System.Reflection;
1. 使用
反射
(Reflect)获取
dll
文件中的类型并
调用
方法
(入门案例)
1 static void Main(string[] args)
2 {
3 //
dll
文件路径
4 ...
反射
提供描述程序集、模块和类型的对象(Type类型)。 可以使用
反射
动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型,然后
调用
其
方法
或访问器字段和属性。 如果代码中使用了特性,可以利用
反射
来访问它们
反射
是.NET中的重要机制,通过
反射
,可以在运行时获得程序或程序集中每一个类型(包括类、结构、委托、接口和枚举等)的成员和成员的信息。有了
反射
,即可对每一个类型了如指掌。另外我还可以直接创建对象,即使这个对象的类型在编译时还不知道。
二、
反射
的使用
平时我们的写法是先引用命名空间(
dll
),然后new一个对象,通过这个对象
调用
其中的字段或
方法
,通过
反射
,我们可以不用添加
dll
来实现效果。
1.首先我们在
C#
中创建一个Test
dll
类 打包
dll
,内容如下
using Sy.
希望通过类名
反射
获取对应的类,发现在正常
c#
的文件可以使用,而把
c#
的文件打成
dll
程序集以后,Type.GetType 返回NULL。下面记录一下修改方案:
在获取的时候private const string name= "xx.xxx.xxx"; 后面加上,与
dll
名
改成private const string name= "xx.xxx.xxx,
dll
name";
就可...
C#
实现
反射
调用
动态加载的
DLL
文件中的
方法
from:http://hi.baidu.com/mkjmmc/blog/item/b5c3192ad2d2de3b5243c141.html
反射
的作用:
1. 可以使用
反射
动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型
2. 应用程序需要在运行时从某个特定的程序集中载入一个特定的类型,以便实现某个任务时可以用...