私は次のように構成されたソリューションを持っています:
- モデルアセンブリ
- データアセンブリ-リポジトリインターフェイスと基本リポジトリクラスを定義します
- ORMアセンブリ-リポジトリインターフェイスを実装し、基本リポジトリクラスを継承します^
- ビジネスアセンブリ-データアセンブリへの参照があり、MEFを介してORMオブジェクトを動的にプルします(ORMアセンブリへの明示的な参照はありません)
- UIアセンブリ
このようにして、他の何かを使用することにした場合、ORMを簡単に交換できます。
Unityで同様の機能を使用できるかどうか知りたいです。ビジネスロジックを基盤となるORMから切り離したいと思います。私が読んだところによると、Unityは主にコンパイル時に機能し、MEFは実行時に機能します。そうは言っても、私のビジネスレイヤーがORMを参照せず、代わりにデータアセンブリから実装するインターフェイスだけを参照するように、単一性と切り離すことは可能ですか?Unityは、実装アセンブリを参照せずに、インターフェイスを実装するものをどのように定義できますか?
現在、MEFでは、ORMへの参照を持つアセンブリはありません(ビジネスレイヤーが実行時にORMを動的にプルしてパーツを検出し、インターフェイスをオブジェクトで埋める場合を除く)。私はこれらの方針に沿って作業を続けたいと思います。Unityでそれができるかどうか知りたいです。