8

私たちは .NET 4.5 を使用していますが、1 か月前に突然機能しなくなるまで、MEF でジェネリック エクスポートを開くことに問題はありませんでした。CI サーバーでの 70 のテストが赤くなり、コンテナー内のパーツの欠落が原因であることがわかりました。

変だと思ったので、次のテスト コードを書きました。

var catalog = new TypeCatalog(typeof(Impersonator<>), typeof(Cache<>));
var parts = catalog.Parts;

しかし、開いているジェネリック型はどれもカタログに登録されないようです。 PartsTypeCatalogウィズTypes = <Empty>です。

通常、この SO questionのように、属性を使用して宣言的なエクスポートによってこれを行いますが、代替手段はどれも機能していないようです。

どんなアイデアでも大歓迎です。

4

5 に答える 5

2

web.config にエントリ < httpRuntime targetFramework="4.5" /> を追加することで、Web アプリでこれを解決しました。Web 以外のアプリの場合は、app.config にエントリ < supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> があることを確認してください。

詳細については、 http://blogs.msdn.com/b/webdev/archive/2012/11/19/all-about-httpruntime-targetframework.aspxを参照してください。

于 2014-03-01T12:24:33.003 に答える