4

有谁知道在即将发布的 .NET 版本中是否计划支持在环境执行上下文中存储对象?正如以下页面中所强调的那样,确实需要它:

CallContext 的限制:https ://connect.microsoft.com/VisualStudio/feedback/details/276325/provide-better-context-support-to-async-operations

隐式与显式上下文: http: //msmvps.com/blogs/jon_skeet/archive/2010/11/08/the-importance-of-context-and-a-question-of-explicitness.aspx

可以添加到环境执行上下文的对象类型有:

  • 那些不适合DI的。即应该由调用站点定义的外部依赖项,但以某种方式横切应用程序域,这使得它们无法作为方法参数传递。示例:CancellationToken、IProgress、事务、SynchronizationContext、SecurityContext。(事实上​​, ExecutionContext 已被硬编码以传递后两者......为什么不能为自定义代码公开开放集合的任何充分理由?)
  • 那些被发出到方法体中的通用代码使用的那些......不知道作为外壳方法的参数可用的显式依赖关系或其声明类型的属性的代码。考虑 AOP 世界中的 PostSharp Aspects。

很高兴听到人们对此的想法:)

编辑: 也在这里发布了问题:http: //social.msdn.microsoft.com/Forums/en-US/async/thread/ea21ca57-5340-439c-8ee9-f0185b5787a1

4

0 回答 0