小编noa*_*AVE的帖子

使用静态类的C#MEF用法

我的解决方案中有一个静态类,用于处理各种程序集.我想通过MEF链接它们,所以我在课堂上创建了一个字段.

[Import(typeof(A))]
    static private A _a1;
Run Code Online (Sandbox Code Playgroud)

然后我有一个方法,我将程序集名称作为参数传递:

    public static A LoadPackage(string filePath)
    {
            var catalog = new AggregateCatalog();
            catalog.Catalogs.Add(new AssemblyCatalog(filePath));
            var _container = new CompositionContainer(catalog);
            ???
    }
Run Code Online (Sandbox Code Playgroud)

那么有没有办法从filepath指定的程序集中导入类型?

我做不到:

_container.ComposeParts(this);
Run Code Online (Sandbox Code Playgroud)

因为类是静态的,我也不能这样做

_container.ComposeParts(_a1);
Run Code Online (Sandbox Code Playgroud)

(开头可能完全错误)因为A没有任何构造函数(所以_a1为null)

.net c# mef c#-4.0

12
推荐指数
2
解决办法
6944
查看次数

标签 统计

.net ×1

c# ×1

c#-4.0 ×1

mef ×1