C# 在autofac中注册GlobalConfiguration.Configuration.DependencyResolver

C# 在autofac中注册GlobalConfiguration.Configuration.DependencyResolver,c#,asp.net-web-api,autofac,C#,Asp.net Web Api,Autofac,我正在尝试使用委托注册在autofac中注册当前的IDependencyResolver builder.Register(c => GlobalConfiguration.Configuration.DependencyResolver).As<IDependencyResolver>(); builder.RegisterType<AService>(); 问题是,第一次解决服务时,这似乎工作正常,但第二次出现以下Autofac错误: “无法解析实例,也无法从

我正在尝试使用委托注册在autofac中注册当前的IDependencyResolver

builder.Register(c => GlobalConfiguration.Configuration.DependencyResolver).As<IDependencyResolver>();
builder.RegisterType<AService>();
问题是,第一次解决服务时,这似乎工作正常,但第二次出现以下Autofac错误:

“无法解析实例,也无法从此LifetimeScope创建嵌套的生存期,因为它已被释放。”

如果我将服务注册为委托:

builder.Register(c => new AService(GlobalConfiguration.Configuration.DependencyResolver);
一切正常

我猜GlobalConfiguration.Configuration.DependencyResolver的代理注册每次都返回相同的实例,但我不确定是否是这样


有没有办法注册此全局依赖项解析程序?

您很可能需要使用以下内容:

builder.RegisterInstance(GlobalConfiguration.Configuration.DependencyResolver).As<IDependencyResolver>().ExternallyOwned().SingleInstance()
builder.RegisterInstance(GlobalConfiguration.Configuration.DependencyResolver).As().ExternallyOwned().SingleInstance()

一般来说,在注册您的东西(以及其他人的:)时明确指定所需的生存期是个好主意。

外部拥有的方法是缺少的部分。谢谢
builder.RegisterInstance(GlobalConfiguration.Configuration.DependencyResolver).As<IDependencyResolver>().ExternallyOwned().SingleInstance()