.net - 将面向 .NET 3.5 的 MEF 部件与面向 .NET 4.0 的应用程序混合

标签 .net .net-4.0 mef

Managed Extensibility Framework既是一个独立项目(目前针对 .NET 3.5),也是 .NET 4.0 框架的一部分。

假设我创建了面向 .NET 3.5 且包含 MEF 部件的程序集。这些程序集将引用 System.ComponentModel.Composition.dll 的独立版本。

现在假设我创建了一个面向 .NET 4.0 且支持 MEF 的应用程序。此应用程序将引用 .NET 4.0 框架附带的 System.ComponentModel.Composition.dll。我可以在此应用程序中使用上述 MEF 部件吗?

最佳答案

不幸的是,这不起作用,因为您只能通过构建 codeplex drop 生成 3.5 版本的 System.ComponentModel.Composition.dll,并且没有使用与官方 4.0 版本相同的 key 签名,因此 CLR 将同时加载两者程序集并将属性视为两个不同的属性。因此,假设应用程序使用 .Net 4.0 版本的 System.ComponentModel.Compsition.dll 并构造 Catalog/Container,它只会找到标记有 .Net 4.0 版本的属性的部分。

关于.net - 将面向 .NET 3.5 的 MEF 部件与面向 .NET 4.0 的应用程序混合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1958067/

相关文章:

c# - 如何在 WinForms 中制作自动滚动的多行文本框?

c# - 获取字母数字值的 Max()

c# - 关闭或处置

c# - 添加 MEF 后 MVC 应用程序崩溃

visual-studio - Visual Studio 编辑器,深入 MEF

c# - 集中 MEF 组合

c# - EF 模型第一个 : Subclass object does not appear in Context

WPF:Xaml,在.NET 4.0中的xaml中创建一个可观察的集合<object>

wpf - 每次击键而不是在用户输入结束时都调用转换器

.net - AjaxExtensions 和 .NET 4 Framework