2016-02-15 4 views
0

Я использую Ninject в новом проекте Azure WebJobs. Один из моих репозиториев требует, чтобы клиент Db был передан. Как передать этот клиент?Использование Ninject в Azure WebJobs, но не может передать мой клиент db

Мой класс привязок:

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; 
    } 
} 

ответ

1

Вам необходимо установить привязку для своего DbClient.

Я предлагаю быть осторожным, когда компоненты будут выпущены. Я еще не видел хороший пример ниндзета для веб-заданий, поэтому я подключился вручную. Но это только мои мысли ...

+0

Я не понимаю. К чему я привязываю свой DbClient? У меня нет интерфейса для этого. – Sam

+0

Вы можете привязать его к себе: Bind () .T (); – LightningShield