私のサブクラスでUnityBootstrapper
は、クラスのConfigureContainer()
メソッドに型を登録します。この質問では、インターフェイス タイプと実装クラスは関係ありません。それらは存在し、解決できます。関連するのは、インターフェイスと型が、ロードするモジュールを含む同じアセンブリ ( Cと呼びましょう) で定義されていることです。
アセンブリAとBに他の 2 つのモジュールがあります。これらのモジュールはDirectoryModuleCatalog
、ブートストラッパーのInitializeModules()
メソッドで使用されることによって検出されます。アセンブリCのモジュールはそうではありません。
問題のある登録を削除すると、Cが見つかりました。インターフェイスとターゲット クラスを別のアセンブリに移動し、登録を再度追加すると、Cが再び検出されます。
登録をブートストラップからCのモジュールのコンストラクター内に移動し、注入された を使用してそこに登録すると、モジュールが見つかり、登録が成功します。IUnityContainer
そのため、何らかの形で登録の順序と場所がモジュールのロードに影響を与えており、例外なく静かに行っているようです。今のところ、「そのモジュールのコンストラクターでモジュールのアセンブリーから型を登録する」というアプローチで生活していますが、これは回避策のように感じます。
これが「やり方」ですか?これは既知の制限またはバグですか?