我们正在创建一个支持使用MEF插件的应用程序。我们正在确定用户能够创建哪种类型的插件,并希望使用依赖注入来为这种类型的插件提供所需的数据。
例如,我们制作了一个能够显示列表的插件。为了实现这一点,它需要显示列表所需数据类型的现有IRepository实例。
IRepository是在另一个数据上下文类中创建的,因此我们无法让MEF本身创建IRepository的实例。
我的想法是通过importing constructor将现有的IRepository实例注入到插件中,但为了使其工作,我需要让已经实例化的IRepository为MEF所知道,而我还没有找到如何做到这一点。任何帮助都将不胜感激。
例如,我们制作了一个能够显示列表的插件。为了实现这一点,它需要显示列表所需数据类型的现有IRepository实例。
IRepository是在另一个数据上下文类中创建的,因此我们无法让MEF本身创建IRepository的实例。
我的想法是通过importing constructor将现有的IRepository实例注入到插件中,但为了使其工作,我需要让已经实例化的IRepository为MEF所知道,而我还没有找到如何做到这一点。任何帮助都将不胜感激。
using System.ComponentModel.Composition
这一行。我更习惯于使用完整的命名空间和类型,例如var compositionBatch = new System.ComponentModel.Composition.CompositionBatch()
。因为容器和组合批处理上的AddExportedValue
都是扩展方法,所以它们没有显示出来。现在我知道了这些方法,我可以更进一步了。再次感谢。 - Jesse van Assen