- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 Autofac 配置中:我已将依赖项注册为 .InstancePerRequest()
并让我的部分代码使用 async
关键字或 .continueWith()
。我的问题是:如果在异步执行的延续中使用依赖项,那么依赖项是否只会在异步代码执行后才被释放,或者它可能发生在之前?
具体场景:
// in IocConfig.cs
ContainerBuilder.Register(c => Context.CreateFromToken(
c.Resolve<IUser>().Name,
.As<Context>()
.InstancePerRequest();
然后在一个文件中我有这段代码:
// elsewhere in the code for a specific request..
client.PostAsync(new Uri(_context.GetSetting("SomeEndpoint")),requestContent)
.ContinueWith(task =>
{
ErrorLog.Write(_context.CreateErrorEntry($"Request: sent {task.Result.StatusCode} result: {task.Result.ToJson()}", LogLevel.Debug));
});
此处的_context
(即.InstancePerRequest()
)在.ContinueWith()
中是否仍然可用,还是可以处置?
最佳答案
如果相同的 HttpContext
(在 MVC 中)或入站 RequestMessage
(在 Web API 中)在延续中可用,则每个请求项将在那里。请求生命周期范围存储在相应的位置。
如果它不可用(例如,如果您的等待者没有传播完整的执行上下文),那么请求生命周期范围可能会被您处理掉,并且它将不可用。
关于c# - 在 autofac 中注册为 .InstancePerRequest() 的依赖项是否始终在异步延续中可用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45715523/
在 Autofac 配置中:我已将依赖项注册为 .InstancePerRequest()并让我的部分代码使用 async 关键字或 .continueWith()。我的问题是:如果在异步执行的延续中
我正在尝试注册一个依赖项,以便在每次运行 Eventhub 触发的 Azure 函数时共享一个实例(每次运行 Azure 函数时创建新实例)。 我试过像下面这样注册: builder.Register
在 ASP.NET MVC 应用程序中将 DbContext 注册为 InstancePerRequest。 (IoC Autofac) builder.RegisterType().As().Ins
过去,我从事过包含大量 Autofac 组件的复杂项目。为了检查是否可以解决所有问题,我们将编写一个单元测试来尝试解决所有必要的(顶级)组件。 但现在我第一次尝试在 ASP.NET MVC 项目中执行
这是我的界面 public interface IMatchServices { string MatchList(); } 在这里上课 public class MatchServices
我正在尝试获得一个事务 ID,它将用于在整个请求过程中进行日志记录。交易 ID 是 AuditContext 中的一个属性,而每个请求又是一个单例。我在 Global.asax.cs 中有以下代码 b
我试图了解 Autofac IOC 中的生命周期范围并有以下问题。 假设我们有类(class): public class TestMemLeak { SomeDisposab
我使用的是 Autofac 3.5.2 版。 我想注册一个需要 B 的单例类 A,直到将来某个时候。如果 B 是使用 InstancePerRequest 注册的,你该怎么做? ? 使用 Owned直
我是一名优秀的程序员,十分优秀!