问题标签 [perwebrequest]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
610 浏览

model-view-controller - 温莎城堡:控制器中的 PerWebRequest

我在 MVC 应用程序中使用 Castle Windsor,我遇到了这个问题:

我有IUnitOfWorkProvider依赖,我想拥有PerWebRequest生活方式。

在控制器中,我有这两个依赖项:

AuthenticationProvider具有相同的依赖关系 ( IUnitOfWorkProvider)

问题是“两个” UnitOfWorkProviders(在控制器中和中AuthenticationProvider我期望的不同。

IAuthenticationProviderAuthenticationProvider并且它的注册在不同的项目(Windows 库)中。

LifestylePerThread不适用于相同的错误

当我设置LifestyleSignleton它工作正常。

有人可以帮忙吗?谢谢。

0 投票
1 回答
1518 浏览

dependency-injection - 在 ServiceStack API 应用程序中使用的正确“每个请求”简单注入器生活方式是什么?

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

我在这里查看了 Simple Injector 文档,发现它没有一种,而是两种与“每个网络请求”相对应的生活方式:

  1. 每个网络请求
  2. 每个 Web API 请求

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

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

0 投票
1 回答
638 浏览

dependency-injection - LightInject PerWebRequest 拦截

这是特定于 LightInject 的拦截。是否可以基于 PerWebRequest 生命周期应用拦截逻辑,以便可以根据用户输入有条件地打开/关闭拦截逻辑?例如像这样的东西。

现在因为 IMyService 生命周期被定义为 PerWebRequest 所以它是为每个 Web 请求创建的,我的印象是它每次创建 MyService 实例时也会调用 Intercept 方法,以便它可以根据跟踪是否启用动态决定应用拦截逻辑或被用户禁用。但是,当请求 IMyService 实例时,它似乎只调用一次 Intercept 方法,并且对于所有后续请求,它重用相同的拦截机制。

我也知道我可以在 MyServiceInterceptor 中使用 ITraceSwitcher 逻辑,然后决定在那里使用或绕过拦截逻辑,但我想避免在禁用跟踪时创建代理,以避免通过反射产生代理调用的开销,但这只有在 Intercept 时才有可能为每个 Web 请求调用方法。请让我知道它是否可行或有更好的方法?

谢谢,

赛义德丹麦人。

0 投票
3 回答
5482 浏览

c# - 如何在 OWIN 中使用 Castle Windsor 的 PerWebRequest 生活方式

我正在将现有的 ASP .Net Web API 2 项目转换为使用 OWIN。该项目使用 Castle Windsor 作为依赖项注入框架,其中一个依赖项设置为使用 PerWebRequest 生活方式。

当我向服务器发出请求时,我得到了一个Castle.MicroKernel.ComponentResolutionException例外。异常建议将以下内容添加到配置文件中的system.web/httpModulesand部分:system.WebServer/modules

这不能解决错误。

从 SimpleInjector 的 OWIN 集成提供的示例中获得灵感,我尝试使用以下方法在 OWIN 启动类中设置范围(以及更新依赖项的生活方式):

不幸的是,这也没有奏效。

如何使用 Castle Windsor 的 PerWebRequest 生活方式或在 OWIN 中模拟它?

0 投票
0 回答
68 浏览

dependency-injection - 每个 Web 请求的生命周期如何在 IoC 库中工作

我想用我想要的任何语言实现 DI。因此,我必须知道生命周期在控制反转中是如何工作的。

例如要实现单例,我可以有一个静态集合来提供相同的实例

现在我想知道我们何时在每个 Web 请求使用的 IoC 库中,我们如何区分请求是否是新的?或者任何请求是否有一个我们可以识别的唯一 ID!