我需要将一个IConfiguration传递给我的DbClient类,我的存储库依赖于这个DbClient。我没能让这个起作用。
我的DbClient:
public class DbClient
{
public DbClient(IConfiguration config)
{
// Perform some initialization
}
}我的存储库依赖于DbClient:
public class MyRepository : IMyRepository
{
private DbClient _client;
public MyRepository(DbClient client)
{
_client = client;
}
}我的绑定类
public class NinjectBindings : NinjectModule
{
public override void Load()
{
Bind<DbClient>().To<DbClient>(); // ?? Not sure about this
Bind<IMyRepository>().To<MyRepository>();
}
}我的控制台应用程序中的主要部分是:
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并确保存储库正确初始化,我需要做什么?
发布于 2016-02-16 05:45:01
您需要绑定IConfiguration。
您可以在Load方法中这样做:
Bind<IConfiguration>().ToMethod(ctx =>
{
var config = new Configuration();
config.AddJsonFile("settings.json");
return config;
});或者在Main方法中:
kernel.Bind<IConfiguration>().ToMethod(...);绑定类型取决于您的需要。也许您应该将配置绑定为常量,而不依赖于上下文。
此外,行Bind<DbClient>().To<DbClient>();是不必要的,因为DbClient将自动绑定到self。
https://stackoverflow.com/questions/35424243
复制相似问题