Web 中的 Unity 容器 PerRequestLifetimeManager Api
Unity Container PerRequestLifetimeManager in Web Api
我有一个 WEB API 应用程序,我使用 UnityContainer 作为我的 DI。
由于我将 UnitOfWork 与 Entity Framework 一起使用,我想在每个请求的 UnityContainer 中注册 DataContext。
我很失望地发现没有 LifeTimeManager 可以为我的每个请求提供一个新的范围。在进一步挖掘之后,我发现 Unity.AspNet.Mvc 确实包含一个 PerRequestLifetimeManager。我的问题是:
- Unity 不包含 PerRequestLifetimeManager 有什么原因吗?在我看来,根据请求注册一些东西是很常见的情况。
- Unity.AspNet.Mvc 包含 PerRequestLifetimeManager 是否有特殊原因?
- 如果我在 WebApi 项目中使用 Unity.AspNet.Mvc,我需要知道什么吗?
- 在使用 Thread 或 Tasks 的情况下,容器如何知道它属于同一个请求?
- Is there a reason why Unity doesn't contain a PerRequestLifetimeManager? It seems to me that is a very common case
to register something per request.
核心库用于 .Net 项目。只有 Asp.Net 会有 Request
.
Is there a particular reason why Unity.AspNet.Mvc does contain
PerRequestLifetimeManager?
与答案 1 相同。请求是一个 Asp.Net 概念。
Is there something I need to know if I am using Unity.AspNet.Mvc in a
WebApi project?
没有。无论如何,您很可能只会使用 PerRequestLifetimeManager。我想当这两个库完全相同时,Unity 的开发人员认为没有必要发布 Mvc 和 WebApi 包。
In case of using Thread or Tasks, how does the container knows it
belongs to the same request?
容器只是另一个对象。 .Net 框架从请求到请求和从线程到线程管理对象。容器本身在请求开始时创建一个唯一的范围,并在请求结束时销毁它。Net 在这两者之间做所有事情。
我有一个 WEB API 应用程序,我使用 UnityContainer 作为我的 DI。 由于我将 UnitOfWork 与 Entity Framework 一起使用,我想在每个请求的 UnityContainer 中注册 DataContext。 我很失望地发现没有 LifeTimeManager 可以为我的每个请求提供一个新的范围。在进一步挖掘之后,我发现 Unity.AspNet.Mvc 确实包含一个 PerRequestLifetimeManager。我的问题是:
- Unity 不包含 PerRequestLifetimeManager 有什么原因吗?在我看来,根据请求注册一些东西是很常见的情况。
- Unity.AspNet.Mvc 包含 PerRequestLifetimeManager 是否有特殊原因?
- 如果我在 WebApi 项目中使用 Unity.AspNet.Mvc,我需要知道什么吗?
- 在使用 Thread 或 Tasks 的情况下,容器如何知道它属于同一个请求?
- Is there a reason why Unity doesn't contain a PerRequestLifetimeManager? It seems to me that is a very common case to register something per request.
核心库用于 .Net 项目。只有 Asp.Net 会有 Request
.
Is there a particular reason why Unity.AspNet.Mvc does contain PerRequestLifetimeManager?
与答案 1 相同。请求是一个 Asp.Net 概念。
Is there something I need to know if I am using Unity.AspNet.Mvc in a WebApi project?
没有。无论如何,您很可能只会使用 PerRequestLifetimeManager。我想当这两个库完全相同时,Unity 的开发人员认为没有必要发布 Mvc 和 WebApi 包。
In case of using Thread or Tasks, how does the container knows it belongs to the same request?
容器只是另一个对象。 .Net 框架从请求到请求和从线程到线程管理对象。容器本身在请求开始时创建一个唯一的范围,并在请求结束时销毁它。Net 在这两者之间做所有事情。