1

您如何将参数传递给解析器以创建对象?

我有一个要传递给数据服务对象的 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,为 IUoW 添加一个属性到 IDataServiceX - 不设置它很容易,程序员怎么知道需要设置这个属性

4

1 回答 1

1

我之前在实体框架上实现了工作单元 (UoW) 和存储库模式。

实际上,UoW 抽象了 EF 上下文,而存储库抽象了实体集。

在我的存储库实现中是 UoW 的属性,这意味着管理存储库生命周期的不是 IoC 容器,而是 UoW 的责任。

在您的情况下,存储库被命名为服务,但可能同样适用。IUoW 接口能否为特定工作单元中存在的所有服务提供两个(或更多)属性?

于 2012-01-12T11:04:39.000 回答