TL;DRコンテナーを使用してランタイムパラメーターをコンストラクターに渡すことは悪い習慣と見なされますか?
例として、実装を使用して動的に構築されたサービス ホストを持つ WCF ソリューションを構築していますServiceHostFactoryBase
。このファクトリは私のコンポジション ルートです。Unity にアクセスしてセットアップし、コンテナーを使用してServiceHost
. ただし、この ServiceHost はデータベース内の構成にアクセスする必要があり、「constructorString」を使用してこの構成を識別します。
Unity は my のインスタンスを作成する人なのでServiceHost
、パラメーターをParameterOverride
. しかし、私はそれが好きではありません。パラメータは依存関係ではなく、実行時に検出されるパラメータです。さらに、ServiceHost
「constructorString」も必要とするさらに別のクラスに依存しています。そのため、Unity に頼ってこれを伝えます。
Unity 3 を IoC コンテナーとして使用しています。