我认为我正在寻找的东西非常简单,但我找不到任何例子.我想使用Ninject创建一个对象,方法是让Ninject调用一个带有指定参数的工厂方法,而不是在实际请求实例化对象期间注入:
在这里请求一个对象:
StandardKernel.Get<ISomeInteface>(new Ninject.Parameters.Parameter("dataContext", dataContext, true));
Run Code Online (Sandbox Code Playgroud)
我想将ISomeInterface映射到一个方法,该方法期望在运行时将值传递给它.
在此处映射接口:
Kernel.Bind<ISomeInterface>().ToMethod(SomeObject.Create(--> `what do I put here?`));
Run Code Online (Sandbox Code Playgroud)
这可能吗?如果是这样,我该如何正确映射我的界面?谢谢!
ToMethod(ctx =>
SomeObject.Create(
(IDataContext)ctx.Parameters.Single(p =>p.Name == "dataContext")
.GetValue(ctx, null))
Run Code Online (Sandbox Code Playgroud)
但是你应该重新考虑你的设计,以避免Get从复合根以外的任何地方打电话.
| 归档时间: |
|
| 查看次数: |
4787 次 |
| 最近记录: |