程序结构:

//获取程序集
Assembly asb = Assembly.LoadFrom(path);//path为程序集的物理路径
//获取程序集下面的Student类
Type document = asb.GetType("DAL.Student");//参数必须是命名空间+类名,否则会报错。
//实例化Document类对象(有参数的话需要传递object参数)
object docObj = Activator.CreateInstance(document);
//获取Document类中的方法
MethodInfo mi = document.GetMethod("GetStudentName");
//参数
object[] parameter = new object[] { "李四" };
string s= mi.Invoke(docObj, parameter).ToString();//输出方法的返回值:李四
FieldInfo pi = document.GetField("Name");//获取Document类中的属性
string name= pi.GetValue(docObj).ToString();//输出方法的属性:张三

2. // 静态方法的调用

method = type.GetMethod("WriteName");//获得静态方法的名称

s = (string)method.Invoke(null,new string[]{"jianglijun"});//第一个参数为null,因为是静态的。第二个是方法的参数。是object数组。

3.//无参数的实例方法

method = type.GetMethod("无参方法名称");

s = (string)method.Invoke(obj,null);

4.给封装属性赋值

System.Reflection.PropertyInfo propertyInfo = type.GetProperty("属性名称"); //获取指定名称的属性
int value_Old = (int)propertyInfo.GetValue(obj, null); //获取属性值。第一个参数是对应类的实例
Console.WriteLine(value_Old);
propertyInfo.SetValue(obj, 5, null); //给对应属性赋值。第一个类是对应类的实例。

利用反射动态从程序集dll执行方法和属性的更多相关文章

  1. C# 利用反射动态加载dll

    笔者遇到的一个问题,dll文件在客户端可以加载成功,在web端引用程序报错.解决方法:利用反射动态加载dll 头部引用加: using System.Reflection; 主要代码: Assembl ...

  2. .Net Core利用反射动态加载类库的方法(解决类库不包含Nuget依赖包的问题)

    在.Net Framework时代,生成类库只需将类库项目编译好,然后拷贝到其他项目,即可引用或动态加载,相对来说,比较简单.但到了.Net Core时代,动态加载第三方类库,则稍微麻烦一些. 一.类 ...

  3. C# 知识点笔记:IEnumerable<>的使用,利用反射动态调用方法

    IEnumerable<T>的使用 创建一个IEnumerable对象 List<string> fruits = new List<string> { " ...

  4. C# 利用反射动态创建对象——带参数的构造函数和String类型

    C# 利用反射动态创建对象——带参数的构造函数和String类型 最近笔者有一个想法需要利用反射动态创建对象(如string,int,float,bool,以及自定义类等)来实现,一直感觉反射用不好, ...

  5. C#利用反射动态创建对象 带参数的构造函数和String类型 (转载)

    最近笔者有一个想法需要利用反射动态创建对象(如string,int,float,bool,以及自定义类等)来实现,一直感觉反射用不好,特别是当构造函数带参数的时候.MSDN上给出的例子十分复杂,网上的 ...

  6. C# 利用反射动态创建对象[摘录]

    摘自:http://hi.baidu.com/yangyuhang/blog/item/f12ea90e13f214e336d12250.html 在VS.Net中,有很多种方法动态调用对象的构造函数 ...

  7. java 中利用反射机制获取和设置实体类的属性值

    摘要: 在java编程中,我们经常不知道传入自己方法中的实体类中到底有哪些方法,或者,我们需要根据用户传入的不同的属性来给对象设置不同的属性值,那么,java自带的反射机制可以很方便的达到这种目的,同 ...

  8. C#利用反射动态调用DLL并返回结果,和获取程序集的信息

    反射的基本概念: .Net Framework 中提供了反射机制,可以再加载程序运行时,动态获取和加载程序集,并且可以获取到程序集的信息 创建Assembly和Entity两个程序集,在Assembl ...

  9. StructureMap.dll 中的 GetInstance 重载 + 如何利用 反射动态创建泛型类

    public static T GetInstance<T>(ExplicitArguments args); // // Summary: // Creates a new instan ...

随机推荐

  1. linux 命令--sed

    简介 sed 是一种在线编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时缓冲区中,称为"模式空间"(pattern space),接着用sed命令处理缓冲区中的内容,处 ...

  2. centos yum源问题

    在配置CentOS-6.0-x86_64-bin-DVD2.iso作为本地yum源的时候,碰到相当多的问题: -----------------------------------------  问题 ...

  3. fpSpread1 简单用法

    //如果汇总的话直接可在模板里面填写公式,不过要有三行空行才行 比如SUM(A1,A2,A3) fpSpread1.Sheets[0].RowCount = 30; fpSpread1.Sheets[ ...

  4. 函数FindFirstFile

    文件查找 Struct Lnode{ Char table[256];         //保存文件夹名 Struct Lnode*next; } 加文件夹入链表 Lnode *newList; Vo ...

  5. HDU 2675 Equation Again

    公式转化+二分答案 首先,把题目中给的等式转化一下,变成了这个样子. 等式右边的值是可以求出来的. ln(x)/x的大致图像是这样的 那么只要对[0,e]和[e,+∞]分别进行二分答案即可. #inc ...

  6. stock 财务 指标

    净资产收益率:"不能比利率低"每股收益是烟幕弹 有一点需要提请大家注意,观察净资产收益率至少要看过去三年的指标,如果公司没有经过大的资产重组,最好看看自其上市以来每一年的净资产收益 ...

  7. 转 ORACLE数据库它可以存储 中文 字节或字符

    一:因为ORACLE数据库它可以存储字节或字符,例如 CHAR(12 BYTE) CHAR(12 CHAR)的意义是不同的.一般来说默认是存储字节,你可以查看数据库参数NLS_LENGTH_SEMAN ...

  8. css块级标签、行内标签、行内块级标签

    <html><head lang="en"> <meta charset="UTF-8"> <title>< ...

  9. NSDate,NSCalendar

    NSLog(@"%@",[NSDate date]); 打印结果: 2015-06-30 08:42:14 +0000 把它转换成2015年6月30日 8时42分14秒 怎么转? ...

  10. jQuery+CSS实现的图片滚动效果

    http://www.helloweba.com/view-blog-139.html