C# 带有MEF的单.dll
通过反射,我可以加载单个dllC# 带有MEF的单.dll,c#,plugins,reflection,mef,C#,Plugins,Reflection,Mef,通过反射,我可以加载单个dll Assembly testAssembly = Assembly.LoadFile(@"c:\Test.dll"); 但是对于MEF,目录中的所有插件都是红色的。 MEF有没有办法做到这一点 我可以这样做: public IPlugn Load(string name) { return Plugins .Where(l => l.Name.Equals(name)) .FirstOrDefa
Assembly testAssembly = Assembly.LoadFile(@"c:\Test.dll");
但是对于MEF,目录中的所有插件都是红色的。
MEF有没有办法做到这一点
我可以这样做:
public IPlugn Load(string name)
{
return Plugins
.Where(l => l.Name.Equals(name))
.FirstOrDefault();
}
但这是一个基于整个插件列表的例子
问候
Dipke目录是MEF用来查找插件的机制,而且非常灵活 您可能正在使用DirectoryCatalog 如果是,您可以使用采用搜索模式的:
var catalog = new DirectoryCatalog("C:\\", "Test.dll");
或者,您可以使用,这将允许您仅指定要使用的部件
var catalog = new AssemblyCatalog(Assembly.LoadFile("C:\\Test.dll"));
最后,如果您想要任何真正特定的行为(从web服务调用加载插件,或者类似的疯狂行为),那么您可以实现自己的行为