通过 ToMethod 将接口绑定到带有参数的方法

发布于 2024-12-07 07:23:11 字数 478 浏览 0 评论 0原文

我认为我正在寻找的东西非常简单,但我找不到任何例子。 我想使用 Ninject 来创建一个对象,方法是让 Ninject 调用一个带有指定参数的工厂方法,但在实例化该对象的实际请求期间未注入参数:

此处请求对象:

StandardKernel.Get<ISomeInteface>(new Ninject.Parameters.Parameter("dataContext", dataContext, true));

我想将 ISomeInterface 映射到期望在运行时向其传递值的方法。

在这里映射一个接口:

Kernel.Bind<ISomeInterface>().ToMethod(SomeObject.Create(--> `what do I put here?`));

这可能吗?如果是这样,我如何正确映射我的界面? 谢谢!

I think what I'm looking for is something very simple, yet I am unable to find any examples.
I'd like to use Ninject to create an object by having Ninject call a factory method with a parameter specified and not injected during the actual request to instantiate the object:

Request for an object here:

StandardKernel.Get<ISomeInteface>(new Ninject.Parameters.Parameter("dataContext", dataContext, true));

And I'd like to map the ISomeInterface to a method that is expecting a value to be passed to it at runtime.

Mapping an interface here:

Kernel.Bind<ISomeInterface>().ToMethod(SomeObject.Create(--> `what do I put here?`));

Is this possible? If so, how do I properly map my interface?
Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

笔落惊风雨 2024-12-14 07:23:11
ToMethod(ctx => 
    SomeObject.Create(
        (IDataContext)ctx.Parameters.Single(p =>p.Name == "dataContext")
        .GetValue(ctx, null))

但您应该重新考虑您的设计,以避免从复合根以外的任何地方调用 Get

ToMethod(ctx => 
    SomeObject.Create(
        (IDataContext)ctx.Parameters.Single(p =>p.Name == "dataContext")
        .GetValue(ctx, null))

But you should rethink your design to avoid calling Get from anywhere else than your composite root.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文