我正在使用 Ninject 3.2.2.0,我正在尝试绑定(bind)一个异步方法。
这是我到目前为止得到的:
kernel.Bind<Task<MyInterface>>().ToMethod(async ctx =>
{
var someData = await DoSomethingAsync();
return new SomethingElse(someData);
}).InRequestScope();
我的方法DoSomethingAsync
永远不会被调用。我相信它没有被调用,因为 MyInterface
正在请求,而不是 Task<MyInterface>
.
有什么想法吗?
最佳答案
你的对象图的构造应该是reliable and fast .这不包括做任何与 I/O 相关的事情。这意味着你不应该根本做任何异步的事情。
相反,任何缓慢、不可靠或异步的事情都应推迟到对象图构建之后。
关于C# 注入(inject) : How to bind to method async,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42284027/