gpt4 book ai didi

dependency-injection - 在 ServiceStack API 应用程序中使用的正确 'per request' Simple Injector 生活方式是什么?

转载 作者:行者123 更新时间:2023-12-04 19:06:53 25 4
gpt4 key购买 nike

我有一个 ServiceStack API 应用程序,它使用 Simple Injector 作为其 IoC 容器。我需要某些组件来拥有“按网络请求”的生活方式。

我查阅了 Simple Injector 文档 here ,发现它对应“per web request”的不是一种,而是两种生活方式:

  • 每个网络请求
  • 每个 Web API 请求

  • 这让我很困惑,因为我一直认为所有 ASP.NET 应用程序都使用相同的基本管道,并且 IoC 容器通过插入 HTTP 模块来实现每个 Web 请求。为什么这对于 Web API 应用程序会有所不同?

    谁能阐明哪个最适合 ServiceStack API 应用程序?

    最佳答案

    每个 Web 请求实际上是一个“每个 HttpContext 请求”,并且在掩护下它使用 HttpContext.Current.Items 缓存实例字典。然而,这个模型开始 break down quickly当您使用 Web API 时,这是由 Web API 的异步模型和 Web API 应用程序可以在自托管环境中运行这一事实引起的(这意味着:不,根本没有 HttpContext.Current)。

    这就是 Simple Injector 为 Web API 应用程序提供特定生活方式的原因。这种 Per Web API Request 生活方式在后台使用新的 Execution Context Scope,它允许使用异步方法流动范围。

    Can anyone shed some light about which is most appropriate for a ServiceStack API application?



    如果 ServiceStack 本质上是异步的或者是自托管的,你最好使用 WebApiRequestLifestyleExecutionContextScopeLifestyle .如果在 ServiceStack 中运行时总是有 HttpRequest.Current,您可以使用 WebRequestLifestyle .

    关于dependency-injection - 在 ServiceStack API 应用程序中使用的正确 'per request' Simple Injector 生活方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22195925/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com