网上看了很多关于反射的思路和方法,发现这个还算不错

//使用反射方:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Reflection; namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
//声明一个反射类对象
Assembly a; //让这个对象加载某个外部dll程序集信息.
a = Assembly.LoadFile(@"C:\Users\正月龙\Desktop\Person\Person\bin\Debug\Person.dll");
//反射出该dll程序集的名称信息.
Console.WriteLine(a.GetName());
Console.ReadKey(); //定义一个"类型信息"的对象.
Type t = a.GetType("Person.Person", false, true); //定义一个成员信息类对象数组,并从程序集中获取.
MemberInfo[] info = t.GetMembers(); //逐个返回成员的名字.
foreach (MemberInfo inf in info)
{
Console.WriteLine(inf.Name);
}
Console.ReadKey(); //定义一个成员方法对象,这里是指定方法名称来获取的.
MethodInfo method = t.GetMethod("show"); //定义一个查询构造函数的对象,获取时需给定签名.
ConstructorInfo coninfo = t.GetConstructor(new Type[] { typeof(int), typeof(string) }); //这里准备两个参数,封装为一个具有两个对象的数组.
object[] arg = new object[] { , "dog" }; //调用构造函数并赋值给一个对象.
object o = coninfo.Invoke(arg); //调用对象的方法
method.Invoke(o, null); //这是第二种调用对象的方法.都可以.
method.Invoke(o, BindingFlags.Public | BindingFlags.Instance , Type.DefaultBinder, null, null); Console.ReadKey();
}
}
}

//被查询或被调用方

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace Person
{
public class Person
{
private int int_a;
private string str_a; public Person()
{ } public Person(int a,string b)
{
this.int_a = a;
this.str_a = b;
} public void show()
{
Console.WriteLine(int_a.ToString()+":"+str_a);
Console.ReadKey();
}
}
}

C# 通过反射类动态调用DLL方法的更多相关文章

  1. 利用C#的反射机制动态调用DLL类库

    最近由于业务要求,需要动态调用DLL类库,所以研究了一下,感觉还好也不太难,今天就把自己理解的写了一个小例子(已经通过VS2005跑通),供大家一起研究和探讨,有理解不当的地方还请高手们多多指正,谢谢 ...

  2. C#程序实现动态调用DLL的研究(转)

    摘 要:在<csdn开发高手>2004年第03期中的<化功大法——将DLL嵌入EXE>一文,介绍了如何把一个动态链接库作为一个资源嵌入到可执行文件,在可执行文件运行时,自动从资 ...

  3. 用C#通过反射实现动态调用WebService 告别Web引用

    我们都知道,调用WebService可以在工程中对WebService地址进行WEB引用,但是这确实很不方便.我想能够利用配置文件灵活调用WebService.如何实现呢? 用C#通过反射实现动态调用 ...

  4. C#程序实现动态调用DLL的研究[转]

    摘   要: 在< csdn 开发高手> 2004 年第 03 期中的<化功大法——将 DLL 嵌入 EXE >一文,介绍了如何把一个动态链接库作为一个资源嵌入到可执行文件,在 ...

  5. C#程序实现动态调用DLL的研究

    摘 要:在<csdn开发高手>2004年第03期中的<化功大法——将DLL嵌入EXE>一文,介绍了如何把一个动态链接库作为一个资源嵌入到可执行文件,在可执行文件运行时,自动从资 ...

  6. 用C#通过反射实现动态调用WebService 告别Web引用(转载)

    我们都知道,调用WebService可以在工程中对WebService地址进行WEB引用,但是这确实很不方便.我想能够利用配置文件灵活调用WebService.如何实现呢? 用C#通过反射实现动态调用 ...

  7. 卸载AppDomain动态调用DLL异步线程执行失败

    应用场景 动态调用DLL中的类,执行类的方法实现业务插件功能 使用Assembly 来实现 但是会出现逻辑线程数异常的问题 使用AppDomain 实现动态调用,并卸载. 发现问题某个插件中开启异步线 ...

  8. C#中动态调用DLL动态链接库

    其中要使用两个未公开的Win32 API函数来存取控制台窗口,这就需要使用动态调用的方法,动态调用中使用的Windows API函数主要有三个,即:Loadlibrary,GetProcAddress ...

  9. C#中动态调用DLL动态链接库(转)

    本来是想实现控制台程序运行时自动全屏,但是只找到VC下的实现方法(http://www.vckbase.com/bbs/prime/viewprime.asp?id=347). 其中要使用两个未公开的 ...

随机推荐

  1. JavaScript学习笔记(一):介绍JavaScript的一些简单知识

    JavaScript是世界上最流行的编程语言.这门语言可用于HTML和web,更可广泛用于服务器.PC.笔记本电脑和智能手机等设备.---------------------------------- ...

  2. color.xml

    写控件的时候经常会遇到颜色选择问题,下面贴出常用颜色表示,方便选择. <?xml version="1.0" encoding="utf-8"?>& ...

  3. Indexed 和 Stored 的区别

    都是针对field的: indexed表示需不需要建立索引,以便之后对这个field进行查询:        stored表示需不需要随索引同时存储这个field本身的内容,以便查询时直接从结果中获取 ...

  4. moq 的常用使用方法

    测试方法                             Console.WriteLine(mock.Object.GetCountThing()); 匹配参数   mock.Setup(x ...

  5. logback 配置详解(一)——logger、root

    1.根节点<configuration>包含的属性 scan: 当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true. scanPeriod: 设置监测配置文件 ...

  6. VC++常用数据类型转化

    char* 转换成 LPCTSTR const char* dibFileName; , , dibFileName, -, NULL, ); wchar_t *wide = new wchar_t[ ...

  7. html5画布基础

    canvas 元素用于在网页上绘制图形. 什么是canvas? HTML5 的 canvas 元素使用 JavaScript 在网页上绘制图像. 画布是一个矩形区域,您可以控制其每一像素. canva ...

  8. Android手机_软件01

    1.微信 下载:http://weixin.qq.com/ 2.QQ 下载:http://im.qq.com/download/ 3.滴滴打车(乘客端):http://www.xiaojukeji.c ...

  9. The The Garbage-First (G1) collector since Oracle JDK 7 update 4 and later releases

    Refer to http://www.oracle.com/technetwork/tutorials/tutorials-1876574.html for detail. 一些内容复制到这儿 Th ...

  10. Jekyll x Liquid 控制文章列表只显示特定类别的Post

    使用Liquid按照Category或者Tag过滤Post List 文章首发于szhshp的第三边境研究所(szhshp.org), 转载请注明 前段时间画了一些漫画,考虑把漫画相关的Post放到另 ...