mef

    3热度

    2回答

    我到目前为止与MEF最大的问题是,当我在我的插件加载器包装中构成部分,当它发现一个导入分辨率加载完全保释与其中一个组件有关的问题。理想情况下,我希望ComposeParts展示某种“忽略和继续”行为,因为理想的用户体验需要加载尽可能多的插件,并在特定插件加载失败时简单地记录事件。我无法在任何地方的文档中找到关于此的信息。 如果您对如何解决此问题有任何其他建议,我正在倾听!

    1热度

    3回答

    我一直在研究MEF(托管扩展框架),但我不完全确定它是否是我需要的东西,并可以帮助我适应我需要做的事情。 有人可以提供一个简单易懂的MEF说明,提供很好的资源和教程(MSDN除外)和/或知道它是否可以完成我想在Visual Studio下执行的任务? 我试图做的任务是每当用户选择一个文本字符串时将一个文本字符串“记录”到一个文本文件。我还需要此功能以被动和实时方式运行,而Visual Studio

    1热度

    2回答

    有没有一种方法可以让MEF加载非托管代码,例如未编写Java的com对象或本机Win32代码?

    4热度

    2回答

    我一直很难用MEF(Managed Extensiblity Framework)编写Visual Studio Editor Extension。我感谢那些回答我以前question的人,因为他们帮助我知道我需要与MEF合作。 我一直在尝试从MSDN的页面Extending the Editor中学习Visual Studio Editor的MEF,但看起来我很难理解它。任何人都可以提供强大的资

    2热度

    1回答

    我在寻找一些帮助,我希望那里有一些善良的灵魂能够给我一个提示:) 我正在使用MVVM Light构建一个新的应用程序。在这个应用程序中,当创建一个View时,它通过使用MEF导入实例化对应的ViewModel。 下面是一些代码: public partial class ContractEditorView : Window { public ContractEditorView()

    2热度

    2回答

    我刚刚进入MEF并想知道如何定义用[ImportMany]导出的集合的顺序? 我的意思是,如果我有两个实现接口IService的类(Class1,Class2),并且每个实现都在两个不同的库中(虽然它们可能在同一个库中),我希望Class2实例在由ImportMany属性定义的IEnumerable集合中的Class1实例之前创建。所以它就像是在Class1调用之前进行Class2调用的功能管道。

    1热度

    1回答

    我真的不知道如何说出我的问题的标题,所以我提前道歉。我阅读了部分MEF文档,试图找到我的问题的答案,但找不到它。 我正在使用ImportMany允许MEF创建特定插件的多个实例。该插件导入几个部分,并在对特定实例的调用中,它希望这些导入是单例。然而,我不想要的是这个插件的所有实例都使用同一个单例。 例如,假设我的应用程序ImportMany s Blender设备。每次我要求一个,我想要一个不同的

    3热度

    1回答

    我已阅读所有关于组合导入而不导出包含类的问题的所有问题,但找不到解决方案。有没有人知道一种方法来实现我想要做的事情? 我的模块组件有内部使用的表单和类。这些形式需要不加载访问一些出口合同,但进口的,因为它们不是在MEF“合成树” 主机组装: public class Host { public Host() { /* Compose parts here... */ }

    3热度

    3回答

    最近我一直在研究依赖注入和控制反转实践,以努力改进我们的应用程序框架的体系结构,我似乎无法找到一个好的答案题。这很可能是我的术语混淆,混淆,或者我现在对这个概念只是天真的,所以任何链接或澄清,将不胜感激。 许多DI和IoC容器的例子并没有说明当你有一个可能的“插件”“库”,或者如何“序列化”一个给定的配置时,容器将如何连接在一起。 (从我读过的关于MEF的文章可以看出,如果你的对象只需要1 [Im

    0热度

    2回答

    如果这个问题已经被问了100次,我很抱歉,但是我真的很努力地让它工作。 假设我有三个项目。 Core.dll 具有公共接口 Shell.exe 载荷在装配夹中的所有模块。 参考Core.dll ModuleA.dll 出口名称,模块的版本。 参考Core.dll Shell.exe有一个[出口]包含我需要注入到所有加载的模块第三方应用程序的单一实例。 到目前为止,我在Shell.exe代码: st