0

私のサブクラスでUnityBootstrapperは、クラスのConfigureContainer()メソッドに型を登録します。この質問では、インターフェイス タイプと実装クラスは関係ありません。それらは存在し、解決できます。関連するのは、インターフェイスと型が、ロードするモジュールを含む同じアセンブリ ( Cと呼びましょう) で定義されていることです。

アセンブリABに他の 2 つのモジュールがあります。これらのモジュールはDirectoryModuleCatalog、ブートストラッパーのInitializeModules()メソッドで使用されることによって検出されます。アセンブリCのモジュールはそうではありません。

問題のある登録を削除すると、Cが見つかりました。インターフェイスとターゲット クラスを別のアセンブリに移動し、登録を再度追加すると、Cが再び検出されます。

登録をブートストラップからCのモジュールのコンストラクターに移動し、注入された を使用してそこに登録すると、モジュールが見つかり、登録が成功します。IUnityContainer

そのため、何らかの形で登録の順序と場所がモジュールのロードに影響を与えており、例外なく静かに行っているようです。今のところ、「そのモジュールのコンストラクターでモジュールのアセンブリーから型を登録する」というアプローチで生活していますが、これは回避策のように感じます。

これが「やり方」ですか?これは既知の制限またはバグですか?

4

1 に答える 1