码迷,mamicode.com
首页 > 其他好文 > 详细

简单的C#动态加载dll并转换类型

时间:2014-06-21 15:35:29      阅读:189      评论:0      收藏:0      [点我收藏+]

标签:style   class   blog   code   http   tar   

可以通过该方法来实现程序插件化。

 

假设A,B两个类,A类为宿主,B类为插件需要加载到A类中:

 

bubuko.com,布布扣
class Program
{
    public interface IHellow
    {
        void Hellow();
    }

    static void Main(string[] args)
    {
        Assembly ass = Assembly.LoadFrom("D:/xx.dll");
        var wormMain = ass.GetTypes().FirstOrDefault(m => m.GetInterface(typeof(IHellow).Name) != null);
        var tmpObj = (IHellow)Activator.CreateInstance(wormMain);

        tmpObj.Hellow();

        Console.Read();
    }
}
A类为宿主类

 

bubuko.com,布布扣
namespace ClassLibrary1
{
    public class WormMain : IHellow
    {
        public void Hellow()
        {
            Console.WriteLine("Test Ok");
        }
    }
}
B类插件类

 

需要引用一下A类的项目文件,以得到接口。

A类输出结果:

"Test Ok"

 

简单的C#动态加载dll并转换类型,布布扣,bubuko.com

简单的C#动态加载dll并转换类型

标签:style   class   blog   code   http   tar   

原文地址:http://www.cnblogs.com/FEAUOR/p/3800581.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!