私は、カスタムデータストアからコントロールコンテナ(Castle Windsor)の逆変換の設定データを読みたいと思うシナリオがあります。このカスタムデータストアには、システムに必要なインターフェイスを実装する一連の(潜在的に注文された)コンポーネントが一覧表示されたテーブルのような構造があります。IWindsorInstallerの実装への依存性の注入
たとえば、アプリケーションにはIFoo
の実装が必要ですが、その実装を含む実際のアセンブリとタイプはこのカスタムデータストアで定義されています。
私はIWindsorInstaller
の実装をして、データ構造を読み込んで、IFoo
という正しい実装者を登録したいと考えています。しかし、カスタムデータストアに正しくアクセスするには、ファクトリクラス(IDataConnectionProvider
インターフェイスを実装する)にアクセスする必要があります。このタイプは、コンテナに登録されているが、私はそれのような何かをするのが妥当であるかどうかを知りません:
var container = new WindsorContainer();
container.Register(Component.For<IDataConnectionProvider>.
ImplementedBy<DefaultDataConnectionProvider>.
DependsOn(new { host, service });
container.Install(FromAssembly.This());
をそして、アセンブリ内のクラスがあります。
public class PluginInstaller : IWindsorInstaller
{
public void Install(IWindsorContainer container, IConfigurationStore store)
{
var dataStoreConnection = container.Resolve<IDataConnectionProvider>();
// read table, register other services
}
}
が最善ということですが私がやろうとしていることをする方法?その他の提案?