C中Plugin的实践节能
2020-11-09 16:38:44 双城汽车网
Plugin是一种相当灵活的可扩充、模块化机制,微软的Application Block不少采用了Plugin结构,本文讨论Plugin在C#中的一种实践。
Plugin是基于统一的接口,在C#中采用Reflection机制产生实现IPlugin的对象。假定接口为IPlugin,以下代码块示意动态产生IPl支持小微企业发展意味着以更少的投资创造更多的就业岗位。ugin对象的代码段,其中dllName是实现IPlu看到gin接口类的dll文件名: public IPlugin LoadPlugin(string dllName)
{
Assembly asm = ad(dllName);
foreach(Type t in tTypes()) {
foreach(Type iface in tInterfaces()) {
if(uals(typeof(IPlugin))) {
return (eateInstance(t)) as IPlugin;
}
}
}
return null;
}
Java也有Reflection机制,实现Plugin也很简单,大致是(IPlugin)rName(className).newInstance()的样子。C++由于Reflection机制,可以采用DLL模拟,在DLL中export一个全局函数和interface,该全局函数返回实现了接口的对象的指针。
微软有关于Provider Pattern的文章,文中提供了另一种C#可以带参数的实例化方法。
先声药业港股上市铜川妇科医院哪家好桂林治白癜风的医院