C# 注入(inject) : How to bind to method async

标签 c# async-await ninject

我正在使用 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/

相关文章:

node.js - 返回类型为 undefined 的一个 Promise 会感染 Promise.all 中的其他 Promise 并带有 undefined

c# - ExecuteScalarAsync 挂起但 ExecuteScalar 立即返回

c# - 使用 Ninject 绑定(bind) Controller 上下文

c# - 是否可以在 ODataController 中返回不同的模型?

c# - Nlog JsonLayout 不包含 LogEvent 属性

c# - 使用 MysqlConnector 从 C# 应用程序执行 MySql 存储过程很慢?

javascript - 等待 JavaScript 返回 API 结果

c# - 如何正确设置 IIS 7 应用程序池标识?

wcf - 模拟 PostSharp 属性的最简单方法

c# - 测试类中的测试方法是否并行执行?