争怎路由网:是一个主要分享无线路由器安装设置经验的网站,汇总WiFi常见问题的解决方法。

C#中Plugin的实战

时间:2024/7/11作者:未知来源:争怎路由网人气:

Plugin是一种相当灵活的可扩充、模块化机制,微软的Application Block不少采用了Plugin结构,本文讨论Plugin在C#中的一种实践。
Plugin是基于统一的接口,在C#中采用Reflection机制产生实现IPlugin的对象。假定接口为IPlugin,以下代码块示意动态产生IPlugin对象的代码段,其中dllName是实现IPlugin接口类的dll文件名:
public IPlugin LoadPlugin(string dllName)
{
Assembly asm = AppDomain.CurrentDomain.Load(dllName);
foreach(Type t in asm.GetTypes()) {
foreach(Type iface in t.GetInterfaces()) {
if(iface.Equals(typeof(IPlugin))) {
return (System.Activator.CreateInstance(t)) as IPlugin;
}
}
}
return null;
}

Java也有Reflection机制,实现Plugin也很简单,大致是(IPlugin)Class.forName(className).newInstance()的样子。C++由于Reflection机制,可以采用DLL模拟,在DLL中export一个全局函数和interface,该全局函数返回实现了接口的对象的指针。

微软有关于Provider Pattern的文章,文中提供了另一种C#可以带参数的实

关键词:C#中Plugin的实战




Copyright © 2012-2018 争怎路由网(http://www.zhengzen.com) .All Rights Reserved 网站地图 友情链接

免责声明:本站资源均来自互联网收集 如有侵犯到您利益的地方请及时联系管理删除,敬请见谅!

QQ:1006262270   邮箱:kfyvi376850063@126.com   手机版