0

次のクラスがあるとします。

public class DBUnitOfWork : IUnitOfWork { ... }

public class CustomerRepository : ICustomerRepository
{
    public CustomerRepository(DBUnitOfWork unitOfWork) { ... }
}

public class OrderRepository : IOrderRepository
{
    public OrderRepository(DBUnitOfWork unitOfWork) { ... }
}

public class AppService : IAppService
{
    public AppService(IUnitOfWork unitOfWork, ICustomerRepository customers, IOrderRepository orders) { ... }
}

public class AppView
{
    public AppView(IAppService appService) { ... }
}

StructureMap を介して AppView のインスタンスを作成し、作成されるたびに新しい AppService オブジェクトを挿入し、AppService がDBUnitOfWorkそれ自体と両方のリポジトリに対して同じインスタンスを持っていることを望んでいます。StructureMap でそれを設定するにはどうすればよいですか?

更新:私はこのようなものを探していますが、コンテナー構成またはレジストリを介して完全に定義されています。

4

1 に答える 1

0

範囲によります。たとえば、使用できます

x.For<IUnitOfWork>()
  .HybridHttpOrThreadLocalScoped()
  .Use<DbUnitOfWork>();

他のスコープ オプションもあります。詳細はこちら

于 2013-10-16T15:47:57.180 に答える