C#利用反射来加载程序集,并调用程序集中有关类的方法
2013-04-29 10:12
495 查看
此文章来自博客园,因为原文已经打不开,我是在百度快照中看到的,所以贴在这里做个备份。
--------------------------------------------------------------------------------------------------------------------------------------
假设在C盘根目录下有个Dog的Dll程序集文件,该程序集文件中包含类Dog 该类中有个狗叫几声的方法,如何通过反射来加载这个C:\Dog.dll,并且调用Dog类里面的Sound方法呢:
public class Dog
{
public void Sound(int count)
{ Console.WriteLine("叫了{0}声",count); }
}
具体如下:
首先反射主要用到了System.Reflection命名空间,所以程序中一定要引用这个命名空间。
using System.Reflection;
写个测试方法如下:
public void Test()
{
string assemblyFilePath= @"C:\Dog.dll";
Assembly ass= Assembly.LoadFile(assemblyFilePath);
Type t = ass.GetType("Dog",false,false);
MethodInfo info = t.GetMethod("Sound");
object instance = Activator.CreateInstance(t);
info.Invoke(instance,new object[]{2});//狗叫了两声
}
------------------------------------------------------------------------------------------------
您的十分满意是我追求的宗旨。
您的一点建议是我后续的动力。
--------------------------------------------------------------------------------------------------------------------------------------
假设在C盘根目录下有个Dog的Dll程序集文件,该程序集文件中包含类Dog 该类中有个狗叫几声的方法,如何通过反射来加载这个C:\Dog.dll,并且调用Dog类里面的Sound方法呢:
public class Dog
{
public void Sound(int count)
{ Console.WriteLine("叫了{0}声",count); }
}
具体如下:
首先反射主要用到了System.Reflection命名空间,所以程序中一定要引用这个命名空间。
using System.Reflection;
写个测试方法如下:
public void Test()
{
string assemblyFilePath= @"C:\Dog.dll";
Assembly ass= Assembly.LoadFile(assemblyFilePath);
Type t = ass.GetType("Dog",false,false);
MethodInfo info = t.GetMethod("Sound");
object instance = Activator.CreateInstance(t);
info.Invoke(instance,new object[]{2});//狗叫了两声
}
------------------------------------------------------------------------------------------------
您的十分满意是我追求的宗旨。
您的一点建议是我后续的动力。
相关文章推荐
- C# 如何利用反射来加载程序集,并调用程序集中有关类的方法
- C# 如何利用反射来加载程序集,并调用程序集中有关类的方法【转】
- 关于C#如何动态加载程序并调用其中某个类的方法
- C#控制台基础 activator与invoke,利用反射调用一个类的有参数方法
- 利用.net反射动态调用指定程序集的中的方法
- C#调用dll提示"试图加载格式不正确的程序"解决方法
- java 程序加载过程---3--类中申明同时申明类的静态对象 创建类的实例 访问类的静态变量 调用类的静态方法 使用反射方法 初始化类的子类对象 直接使用java.exe 调用某个类
- C# 调用lua 报错未能加载文件或程序集“lua51.dll”或它的某一个依赖项。找不到指定的模块。 解决方法
- C#实现反射调用动态加载的DLL文件中的方法
- C#实现反射调用动态加载的DLL文件中的方法
- C#实现反射调用动态加载的DLL文件中的方法
- C# aspx页面动态加载ascx用户控件 及 利用反射调用其内方法
- C#,动态加载DLL,通过反射,调用参数,方法,窗体
- 利用.net反射动态调用指定程序集的中的方法
- C#开发学习笔记:动态调用不同程序集中的方法
- C#中调用DLL时未能加载文件或程序集错误处理方法
- 利用.net反射动态调用指定程序集的中的方法
- c# 反射调用程序集方法、接口实例
- C#中调用DLL时未能加载文件或程序集错误的处理方法(详解)
- 利用反射从程序集dll中动态调用方法