c#反射-动态加载dll简单例子

假设已有组件ClassLibraryTEST.dll,放置于程序目录下。组件中ClassLibraryTEST命名空间下有TEST类,类中有方法sum。下面示例就是动态加载组件并调用sum方法的简例:

1 static void Main(string[] args)
2         {
3             string dllPath = string.Format("{0}\\ClassLibraryTEST.dll", System.Environment.CurrentDirectory);//dll组件路径
4             Assembly pAss = Assembly.LoadFile(dllPath);//加载组件
5             Type pType = pAss.GetType("ClassLibraryTEST.TEST");//获得类,ClassLibraryTEST命名空间,TEST类名
6             MethodInfo pMtInfo = pType.GetMethod("sum");//获得方法,sum方法名
7             object o = Activator.CreateInstance(pType);//创建类实例
8             int sum = (int)pMtInfo.Invoke(o, new object[] { 1, 2 });//调用方法
9         }

下面是组件代码:

 1 namespace ClassLibraryTEST
 2 {
 3     public class TEST
 4     {
 5         private int a = 0;
 6         private int b = 0;
 7         public string s = "n";
 8         private int Add(int a,int b)
 9         {
10             return a + b;
11         }
12         public int sum(int a, int b)
13         {
14             return a + b;
15         }
16         private string url = "www.123.com";
17     }
18 }

 

posted @ 2016-11-23 13:30  Hxxxxxxyyyyyy  阅读(523)  评论(0编辑  收藏  举报