问题标签 [mef]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mef - 我可以使用 MEF 控制对象创建吗?
我需要向我们现有的代码添加一些扩展点,并且我一直将 MEF 视为一种可能的解决方案。我们有一个 IRandomNumberGenerator 接口,带有一个我们希望可交换的默认实现(ConcreteRNG)。这听起来像是 MEF 的理想方案,但我在实例化随机数生成器的方式上遇到了问题。我们当前的代码如下所示:
换句话说,消费者负责实例化它需要的 RNG,包括提供每个实例所需的种子。
我想做的是让 MEF 发现并实例化具体的 RNG 实现(使用 DirectoryCatalog)。我不确定如何实现这一目标。我可以公开一个 Generators 属性并将其标记为 [Import],但是如何提供所需的种子?
我还缺少其他方法吗?
c# - 仅给定 Type 实例从 MEF 容器获取导出
我有一个场景,我必须从我的 CompositionContainer 实例中获取导出,但我只有一个可以使用的类型;我在编译时不知道类型,因此我无法以正常的通用方式检索导出的对象。
通常你会这样做:
但就我而言,我有这个:
有任何想法吗?
dependency-injection - 使用 MEF 进行 DI/IoC 的资源和示例
我搜索得很高,并寻找有关使用 MEF 进行 DI 的示例。我知道它不是 DI,但从我听到的(真的在播客中听到)可以这样使用它……但我找不到任何博客文章或示例。
我已经在这个项目中使用了 MEF(以支持插件)并且认为也可以很好地利用 DI。
也许我在叫错树?
c# - 如何在 .Net 4.0 中将 DLR 与 MEF 一起使用?
MEF 团队承诺 MEF 将支持 .Net 4.0 中的 DLR 插件。它是否已经发生并且我可以 [Import] 一些 IronPython 对象?
如果是,任何指向该主题的链接都会有所帮助。
.net - 正则表达式在编辑器扩展中爆炸
我正在为我的 Django 渲染引擎构建一个 Visual Studio 编辑器扩展。到目前为止,我刚刚开始使用它,它真的很简单,并且到目前为止它完成了我期望它做的事情 - 突出显示等等。或者直到我开始添加解析逻辑。部分解析依赖于正则表达式。这是我的问题:无论我如何尝试 - 静态变量、成员变量 - 任何东西,每次我调用 new Regex 它都会给我“对象未设置为实例”异常。在 MEF 中使用正则表达式 (RegEx) 有问题吗?
干得好:
使用 Regex 构造函数的行上的断点被击中就好了。下一个 F10 给出了例外
wpf - App.Current.MainWindow 在启动另一个对话框时发生变化?
启动应用程序时,我正在从 MEF 插件启动一个新对话框。有人可以解释为什么这会改变App.Current.MainWindow
从插件启动的对话框吗?我怎样才能防止这种情况发生?
c# - 如果在目录中找到新的 DLL,则在 DirectoryCatalog 上调用 Refresh() 会引发 ChangeRejectedException
我正在试验MEF并创建了一个测试程序来调用实现某些给定接口的“插件”,如下所示:
我创建了一个示例控制台程序,它从它自己的程序集中加载“插件”,如果找到的话,从一个放置额外 DLL 的目录中加载。无论插件目录为空(仅调用“本机”插件)还是具有兼容的 DLL,程序都可以正常工作。但是...如果在循环迭代之间添加了一个新的 DLL,DirectoryCatalog 的 Refresh() 方法会抛出一个 ChangeRejectedException,解释如下:
组成保持不变。由于以下错误,更改被拒绝: 合成产生了单个合成错误。下面提供了根本原因。查看 CompositionException.Errors 属性以获取更多详细信息。
1) 部分 'MEFTest.Program' 上的不可重组导入 'MEFTest.Program.ProberSet (ContractName="ProbeContract.IProbe")' 阻止了出口的变化。
该程序如下,后面是我尝试添加的 DLL 的代码。我究竟做错了什么?
插件。其他两个插件类似,唯一的区别是它们与主程序位于同一个程序集中:
c# - MEF(托管可扩展性框架)是否进行“鸭子”打字?
我有 2 个程序集:
组装 1:
组装 2:
我知道如何让它发挥作用。我可以向 MEF(托管可扩展性框架)询问对象,或者让它导出正确的 IWeapon 而不仅仅是按名称导出对象。
如果实现了所有接口点,MEF 可以为我输入“鸭子”并返回代理对象吗?
.net - Visual Studio 2010 插件编写文章/教程?
有谁知道一些关于为 Visual Studio 2010 编写插件/插件的好文章/教程?
wpf - 在一个项目中使用 MEF 和 Prism (CAL) 是否可能(并且合理)?
我目前正在使用 Prism (CAL) 进行 WPF 项目,我想知道在一个项目中同时使用 Prism 和 MEF 是否是个好主意。
我会使用 Prism 来实现模块化,使用 MEF 来实现可扩展性。我的项目是一个类似绘画的应用程序,因此 Prism 将提供模块分离(工具箱、画布作为模块等),MEF 将用于为要绘制的新形状(即矩形、圆形......)提供可扩展点。
这有意义吗,或者我可以仅使用 Prism 获得类似的功能吗?
在此先感谢和最好的问候,crischu