首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将配置传递给尼尼姆

将配置传递给尼尼姆
EN

Stack Overflow用户
提问于 2016-02-16 05:10:24
回答 1查看 1.5K关注 0票数 1

我需要将一个IConfiguration传递给我的DbClient类,我的存储库依赖于这个DbClient。我没能让这个起作用。

我的DbClient:

代码语言:javascript
复制
public class DbClient
{
   public DbClient(IConfiguration config)
   {
      // Perform some initialization
   }
}

我的存储库依赖于DbClient:

代码语言:javascript
复制
public class MyRepository : IMyRepository
{
   private DbClient _client;
   public MyRepository(DbClient client)
   {
      _client = client;
   }
}

我的绑定类

代码语言:javascript
复制
public class NinjectBindings : NinjectModule
{
   public override void Load()
   {
      Bind<DbClient>().To<DbClient>(); // ?? Not sure about this
      Bind<IMyRepository>().To<MyRepository>();
   }
}

我的控制台应用程序中的主要部分是:

代码语言:javascript
复制
static void Main()
{
   var config = new Configuration();
   config.AddJsonFile("settings.json");

   var kernel = new StandardKernel();
   kernel.Load(Assembly.GetExecutingAssembly());

   var myRepository = kernel.Get<IMyRepository>();
}

我遗漏了什么?要将IConfiguration传递到DbClient并确保存储库正确初始化,我需要做什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-16 05:45:01

您需要绑定IConfiguration

您可以在Load方法中这样做:

代码语言:javascript
复制
Bind<IConfiguration>().ToMethod(ctx =>
{
    var config = new Configuration();
    config.AddJsonFile("settings.json");
    return config;
});

或者在Main方法中:

代码语言:javascript
复制
kernel.Bind<IConfiguration>().ToMethod(...);

绑定类型取决于您的需要。也许您应该将配置绑定为常量,而不依赖于上下文。

此外,行Bind<DbClient>().To<DbClient>();是不必要的,因为DbClient将自动绑定到self。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35424243

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档