在 Azure WebJobs 中使用 Ninject 但无法传递我的数据库客户端

Using Ninject in an Azure WebJobs but can't pass my db client

我在新的 Azure WebJobs 项目中使用 Ninject。我的一个存储库需要传递 Db 客户端。我如何通过这个客户端?

我的绑定 class 是:

public class NinjectBindings : Ninject.Modules.NinjectModule
{
   public override void Load()
   {
       Bind<IMyRepository>().To<MyRepository>();
   }
}

我在控制台应用程序中的主要功能如下所示:

static void Main()
{
   var kernel = new StandardKernel();
   kernel.Load(Assembly.GetExecutingAssembly());

   var config = new Configuration();
   config.AddJsonFile("appsettings.json");

   DbClient _dbClient = new DbClient(config);

   IMyRepository myRepository = kernel.Get<IMyRepository>(); // This is where I get an error
}

我的存储库代码是这样的,它需要 DbClient

public class MyRepository : IMyRepository
{
   private DbClient _client;
   public MyRepository(DbClient client)
   {
      _client = client;
   }
}

您需要为您的 DbClient 设置绑定。

我建议在发布组件时保持谨慎。我还没有看到一个很好的 ninject 网络作业示例,所以我手动连接了。但这只是我的想法...