0

好的,所以在类库中,不使用 MEF 是个好主意吗?

这是一个例子:

ISomeInterface

5 ISomeInterface 的实现

一次导入所有 ISomeInterface 并使用它们的类。

同样,这一切都在一个 dll 中。由于它在 DLL 中,因此没有引导 MEF 来创建目录,而且构建目录只是为了使用它一次似乎有点过分。

我只是在学习 MEF 以及如何使用它。

格雷格

4

1 回答 1

1

在阅读了更多内容之后,似乎没有理由不能在 DLL 中使用 MEF 来创建自己的部件。当我问这个问题时,我在想 Importing 将主要在 Main() 或 App() 类型的函数中组成整个应用程序。但是,如果需要在导出到应用程序的主要部分上进行组合,它仍然可以使用 MEF 在构造函数中组合自身,如下所示:

//An aggregate catalog that combines multiple catalogs
        var catalog = new AggregateCatalog();
        //Adds all the parts found in the same assembly as the Program class
        catalog.Catalogs.Add(new AssemblyCatalog(typeof(Program).Assembly));

        //Create the CompositionContainer with the parts in the catalog
        _container = new CompositionContainer(catalog);

        //Fill the imports of this object
        try
        {
            this._container.ComposeParts(this);
        }
        catch (CompositionException compositionException)
        {

        }
于 2013-02-09T00:42:25.933 回答