c# - Ninject Providers -> 在提供者中获取另一个依赖项

标签 c# dependency-injection ninject

我想知道这里有哪些最佳实践。 我需要为我的 Multi-Tenancy 应用程序构建一个 DbContext,所以我制作了一个这样的依赖项提供程序:

public class TenantContextFactoryProvider : Provider<DbContext>
{
    protected override DbContext CreateInstance(IContext context)
    {
        var tenant = // How to get the tenant through ninject??
        return new DbContext(tenant.ConnectionString);
    }
}

我需要 ninject 来解决租户依赖关系,但我不确定该怎么做?

最佳答案

虽然服务定位器确实有效,但构造函数注入(inject)是另一种选择。

public class TenantContextFactoryProvider : Provider<DbContext>
{
    ITenant tenant; 
    public TenantContextFactoryProvider(ITenant tenant)
    {
         this.tenant = tenant;
    }

    protected override DbContext CreateInstance(IContext context)
    {
        return new DbContext(tenant.ConnectionString);
    }
}

关于c# - Ninject Providers -> 在提供者中获取另一个依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30001121/

相关文章:

c# - 如何在不播放或存储的情况下获取 mp3 文件的持续时间

java - 如何在多个Spring Boot存储库实例之间切换

Word 中的 C# 嵌套表格

dependency-injection - 如何使用 StructureMap 注入(inject) AutoMapper IMappingEngine

php - 抽象工厂使用 "new"吗?

c# - 非虚拟成员的无效设置 - 在接口(interface)上?

dependency-injection - 在 Ninject 2 中注入(inject) HttpContext

c# - 使用 Unity3D 注入(inject)

c# - 在 C# 中打开 MS Excel 工作表

c# - 在 WebAPI 中获取 JSON.NET 以序列化确切类型而不是子类