asp.net core Windsor vs ConfigureServices

时间:2017-08-01 12:56:07

标签: c# dependency-injection asp.net-core castle-windsor

我最近去了asp.net核心,我开始使用 ConfigureServices 而不是Windsor。我有两个类 MockDbContext ProductionDbContext ,它们都继承自 DbContext 类。如何在ConfigureServices中编写以下代码?

if (true) {
        container.Register(Component.For<DbContext>().UsingFactoryMethod(() => MockDbContext.GetMockDbContext()).LifeStyle.HybridPerWebRequestTransient());
} else {
        container.Register(Component.For<DbContext>().ImplementedBy<ProductionDbContext>().LifeStyle.HybridPerWebRequestTransient());
}

我尝试了几个选项而没有任何成功。看来我必须创建界面来区分这两个类。

1 个答案:

答案 0 :(得分:0)

        if (true)
        {
            services.AddSingleton((_) => MockDbContext.GetMockDbContext());
        } else
        {
            services.AddScoped((_) => new ProductionDbContext());
        }