ToB企服应用市场:ToB评测及商务社交产业平台

标题: Natasha 插件化之dll [打印本页]

作者: 金歌    时间: 2023-5-20 20:15
标题: Natasha 插件化之dll
调用外部dll来实现组件化

场景

好处

实现

主要使用NatashaDomain类实例化的方法(源码位置:src\Natasha.Domain\Extension\NatashaDomainExtension.cs)
相关方法:
LoadPluginUseDefaultDependency        如果加载的dll已经被加载过了,则跳过
LoadPluginWithAllDependency                        不会判断高低版本,源码中的解释是默认的,感觉和Default类似
LoadPluginWithHighDependency                使用高版本的dll
LoadPluginWithLowDependency                 使用低版本的dll
参数说明:
string path                                                                                                                                                                                        必填,dll所在路径
Func? excludeAssembliesFunc = null        选填,需要排除的dll,返回true为排除引用,例如共同引用某个公用的dll(例如Utils.dll),此时可以选择使用哪个版本的dll
找到class类(默认所有插件的实现类为*Controller),也可以按照下面例子来
var type = assembly.GetTypes().Where(item => item.Name.IndexOf("Controller")!=-1).First();
实例化
var plugin = (IPluginClass)(Activator.CreateInstance(type)!);
例子


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4