Unityコンテナが初めてなので、これにどのようにアプローチすればよいか非常にわかりません。
ここに私が持っている工場があります:
class DataCopierFactory : IDataCopierFactory
{
private readonly IUnityContainer _container;
//not mad on binding the factory to the container, but feck it
public DataCopierFactory(IUnityContainer container)
{
_container = container;
}
//return a data copier that will transfer data from any DB to any other DB
public IDataCopier createDataCopier(int i)
{
switch(i)
{
case 1:
return new ScheduleDataCopier(new LTEEFContext()); //somehow resolve the LTEEFContext..
//case 2:
//
default:
throw new InvalidOperationException("Parameter -t=" + i + " does not exist");
}
}
}
createDataCopier メソッドを呼び出していくつかの列挙型を渡すときに、Unity コンテナーを使用して、さまざまなタイプの IDataCopier の DB オブジェクト コンテキストを解決したいと考えています。
どうすればいいですか?
ファクトリを呼び出すクラスで行う必要がありますか? または、unitycontainer を注入し、その時点で異なる DB オブジェクト コンテキストを解決します。
IDatacopier の各実装には、コンストラクターとして使用される IDBContext があります。基本的にこれを注入したいのですが、Datacopier のさまざまな実装のコンテキストを変更できるようにします。
うまくいけば、これは理にかなっています... :) 前もって感謝します ニール