我需要将一个PetaPoco数据库对象与Ninject绑定。在文档(https://github.com/CollaboratingPlatypus/PetaPoco/wiki/Fluent-Configuration)中,给出了SimpleInjector的以下示例:
var container = new SimpleInjector.Container();
container.RegisterSingleton<IDatabaseBuildConfiguration>(DatabaseConfiguration.Build()
.UsingCommandTimeout(180)
.WithAutoSelect()
.WithNamedParams()
.UsingConnectionStringName("myAppsConnection")
.UsingDefaultMapper<ConventionMapper>(), Lifestyle.Transient);
container.Register<IDatabase>(() => container.GetInstance<IDatabaseBuildConfiguration>().Create())我的其他绑定都如下所示。
Bind<IRepRepo>().To<RepRepoWeb>().InSingletonScope();但是我找不到一种清晰的方法来在Ninject中做这个绑定。
发布于 2020-01-21 16:00:58
我现在把它弄好了。关键是要利用ToMethod。
Bind<IDatabaseBuildConfiguration>().ToMethod(ctx =>
DatabaseConfiguration.Build().UsingCommandTimeout(180)
.WithAutoSelect()
.WithNamedParams()
.UsingProvider<SqlServerDatabaseProvider>()
.UsingConnectionString("xxxx")
).InSingletonScope();
Bind<IDatabase>().ToMethod(ctx =>
ctx.Kernel.Get<IDatabaseBuildConfiguration>()
.Create()
).InSingletonScope();https://stackoverflow.com/questions/59813843
复制相似问题