C# 带有MEF的单.dll

C# 带有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

通过反射,我可以加载单个dll

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服务调用加载插件,或者类似的疯狂行为),那么您可以实现自己的行为