我非常不确定我应该如何处理这个问题,因为我是 Unity Container 的新手。
这是我拥有的一家工厂:
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 的数据库对象上下文。
我该怎么做呢?
我应该在调用工厂的课程中这样做吗?或注入 unitycontainer 并在此时解析不同的 DB 对象上下文。
IDatacopier 的每个实现都有一个 IDBContext 作为构造函数,我想基本上注入它,但允许我为 Datacopier 的不同实现更改上下文。
希望这是有道理的...... :) 提前感谢尼尔