您的位置:首页 > 编程语言 > C#

反射示例1-----执行反射dll的方法和获取属性的值

2014-11-04 22:48 549 查看
项目结构:



将Document类库生成的DLL文件放在ConsoleApplication2\ConsoleApplication2\bin\Debug文件夹下
-------------------------------------------------------------Document.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Document
{
public class Document
{
public string Name = "李四";
public string GetName(string name)
{
return name;
}
}
}
-------------------------------------------------------------Program.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Reflection;
using System.IO;
namespace ConsoleApplication2
{
class Program
{
static void Main(string[] args)
{
//获取程序集
Assembly asb = Assembly.LoadFrom(Directory.GetCurrentDirectory() + "/Document.dll");
//获取程序集下面的Document类
Type document = asb.GetType("Document.Document");
//实例化Document类对象(有参数的话需要传递object参数)
object docObj = Activator.CreateInstance(document);
//获取Document类中的方法
MethodInfo mi = document.GetMethod("GetName");
//参数
object[] parameter = new object[] { "张三" };
Console.WriteLine(mi.Invoke(docObj, parameter).ToString());//输出方法的返回值:张三
//获取Document类中的属性
FieldInfo pi = document.GetField("Name");
Console.WriteLine(pi.GetValue(docObj));//输出方法的属性:李四
Console.ReadKey();
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息