如何将参数传递给解析器以创建对象?
我有一个UoW对象,我想传递给数据服务对象,我希望能够确保使用一个UoW对象创建在特定序列中创建的数据服务对象
例如
using (var context = Resolver.GetService<IUoW>())
{
var dataService1 = Resolver.GetService<IDataService1>();
var dataService2 = Resolver.GetService<IDataService2>();
// do some stuff
context.Commit();
}
选项1,将IUoW传递给Resolver.GetService调用 - 不了解IDataServiceX实现的构造函数
选项2,为IDUServiceX添加IUoW属性 - 不设置它会很容易,程序员怎么知道这个属性需要设置
答案 0 :(得分:1)
我之前在实体框架上实现了工作单元(UoW)和存储库模式。
实际上,UoW抽象了EF上下文,而存储库抽象了实体集。
在我的存储库实现中是UoW的属性,这意味着它不是管理存储库生命周期的IoC容器,这是UoW的责任。
在您的情况下,存储库是命名服务,但可能同样适用。 IUoW接口是否可以为特定工作单元中的所有服务提供两个(或更多)属性?