问题标签 [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.

0 投票
3 回答
5297 浏览

c# - MEF如何确定其导入顺序?

MEF 允许您通过使用ImportMany属性导入多个部件。它如何确定检索相关导出并将它们添加到您正在填充的枚举中的顺序?例如,我将如何导入必须以特定顺序触发的多个 IRule?我能想到的唯一方法是在 IRule 中有一个 OrderValue 属性并手动排序:

0 投票
3 回答
1345 浏览

c# - VS 2010 鼠标处理器扩展 - 不工作

我正在尝试使用 Visual Studio 2010 扩展,我需要在其中处理 IMouseProcessor 公开的事件。

据我从文档中得知,我应该创建一个 IMouseProcessorProvider 并使用 MEF 导出,以便 Visual Studio 可以自动获取它。

我创建了这个类:

当我运行 Visual Studio 的实验实例时,我的扩展在扩展管理器中可见。但是我的自定义鼠标处理器提供程序永远不会被调用。我错过了什么/我做错了什么?

0 投票
2 回答
1251 浏览

.net - 将 ObjectContext 存储在 ASP.NET 的线程静态变量中是否安全?

我已经读过我应该存储一个ObjectContextinHttpContext.Current以便ObjectContext在请求中调用的不同服务/存储库之间共享我的。我想知道在类变量上使用ObjectContext带有[ThreadStatic]属性是否安全。static这样做安全吗?每个请求都在自己的线程中处理吗?

0 投票
2 回答
17495 浏览

c# - 导入属性始终为空(MEF 导入问题)

我尝试了一段时间使用 MEF 完成工作,但现在,我遇到了需要帮助的问题。

说明:我有 2 个 DLL 和 1 个 EXE 文件。ClassLibrary1 (LoggerImpl.cs, SomeClass.cs) ClassLibrary2 (ILogger.cs) WindowsApplicationForms1 (WindowsApplicaitonForms1.cs, Program.cs)

我需要任何帮助或指导,为什么这不起作用?

0 投票
1 回答
7685 浏览

c# - MEF:我应该把 CompositionContainer 放在哪里?

我一直在为我的基于 Web 的应用程序使用 Windsor IoC 容器,以解决应用程序应该使用的数据访问层实现。

Web 应用程序的 UI 将由页面组成,每个页面由称为 portlet 的小单元组成。(它们的概念有点类似于小部件。)这些所谓的 Portlet 基本上是 Web 控件,可以在运行时为每个页面单独配置。

该应用程序将附带其中一些内置功能,但我希望能够轻松扩展它。

我发现这种机制正是 MEF 的用途。因此,我决定以这样一种方式来实现该系统,即它使用 MEF 发现 portlet。然后,我意识到它也可以做我目前使用温莎的事情,所以我决定放弃温莎,转而使用 MEF。

显然,我将不得不使用 DirectoryCatalog,它会扫描应用程序 bin 文件夹中的 .dll 并返回我需要的所有内容。

我还阅读了 StackOverflow 中有关 MEF 的一些教程、示例和所有问题。我认为使用 MEF 的最简单方法是通过 Glenn Block 在他的教程中提到的 PartInitializer,但我意识到它不在 MEF 中。实际上,它在我从 CodePlex 下载的代码中,但在一个单独的程序集中,而且只有源代码,而不是二进制形式。(这是否意味着它不是 MEF 的一部分?或者把它放到一个单独的项目有什么意义?)然后,我意识到它是为 Silverlight 设计的,所以它并没有真正帮助我。(或者我应该只针对 .NET 3.5 编译它,还是将它包含在我的项目中,我可以开始了吗?)

所以现在我遇到了以下问题:我应该将 CompositionContainer 放在我的应用程序中的什么位置?

还有一件事我想考虑:我应该在应用程序的生命周期中只使用一个 CompositionContainer,还是每次需要时都创建一个容器更好?

0 投票
2 回答
7497 浏览

c# - MEF:如果我有多个出口但只需要一个进口怎么办?

我正试图围绕 MEF 进行思考。有一件事我不明白。

假设我有一个名为 ISomething 的接口,它是一个合同,并且我在包含我的应用程序的文件夹中有多个程序集,我不知道其中有多少个 ISomething 实现,或者哪个包含一个。

如果我创建了一个使用 MEF 的主机应用程序,并且想获得一个 ISomething,但只有一个,那么 MEF 如何决定它将为我提供哪个实现?

或者,类似于常见的 IoC 容器,我如何告诉它应该使用哪个实现?

提前感谢您的回答。

0 投票
1 回答
1105 浏览

c# - 使用托管可扩展性框架的沙盒插件

我正在开发一个第三方开发人员可以编写插件的应用程序。我一直在研究 Managed Extensibility Framework,这似乎是正确的方法。

不过有一件事,我想阻止插件自由访问应用程序的其余部分(调用单例等),但希望限制通过某个接口进行通信,理想情况下,每个插件都必须“请求”不同事物的权限,例如访问其他插件和用户数据,有什么好方法可以做到这一点吗?

否则我唯一能想到的就是将安全字符串传递给每个方法并混淆代码,但这似乎是一个丑陋的解决方案:P

0 投票
2 回答
4411 浏览

c# - MEF + WCF 服务主机?

我刚刚进入 MEF,遇到了一个我无法解决的问题。我有一个正在读取我的 DLL(通过 MEF)的 Windows 服务,每个 DLL 都是一个 WCF 服务主机。当我运行我的 Windows 服务并读取 DLL 时,一切都运行良好,除了每当其中一个 WCF DLL 获得任何“活动”时,它们就会重新实例化,然后处理传入的数据。我需要它们在开始时只实例化一次。这可能吗?

0 投票
1 回答
863 浏览

c# - MEF 和 WCF - AppDomain 的问题

我目前正在运行最新的预览版 (#8),并且正在使用 WCF 服务。我使用 MEF 读取 WCF 服务库。我注意到,每当我从读取库的应用程序中对其中一个库执行任何操作时,这些 WCF 库的 AppDomain 为 1,但每当 WCF 服务收到通知时,它的 AppDomain 为 2?有没有办法确保收到通知的 WCF 服务与通过 MEF 读入的 WCF 服务相同(或在同一个 AppDomain 中)?

我基本上需要读入我的 WCF 服务上的配置数据,并确保数据始终存储在内存中,因此当收到任何通知时,我将使用内存中的数据来帮助分析发送的内容。

0 投票
1 回答
643 浏览

.net - MEF 异常“必须设置‘SourceProvider’。”

我正在使用 .NET 4.0 beta 2 中的新System.ComponentModel.Composition命名空间,也称为Managed Extensibility Framework

我使用以下 C# 示例,其中 aMonkey导入 a Banana

但是,当我尝试按如下方式编写猴子时,我收到一条InvalidOperationException消息“此对象尚未初始化 - 必须设置属性‘SourceProvider’。 ”:

我在这里想念什么?我知道我可以直接传递目录而不将其包装在 CatelogExportProvider 中,但上述方法不应该也可以吗?