问题标签 [dependency-resolver]
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.
c# - 带有 Unity 错误的 Web API 依赖注入 - System.StackOverflowException:“引发了‘System.StackOverflowException’类型的异常。”
我正在尝试使用统一容器在 ASP.Net Web API 中实现依赖注入,并已通过以下 2 篇文章实现了这一点:
- https://stackoverflow.com/a/38770689/3698716
- https://docs.microsoft.com/en-us/aspnet/web-api/overview/advanced/dependency-injection
两者都有一些小的变化,但两者的实现是相同的。
在 UnityResolver.cs 类的 GetService 方法中实现我的代码时return _container.Resolve(serviceType);
出现 stackoverflow 异常,下面是我得到的异常:
System.StackOverflowException:“引发了‘System.StackOverflowException’类型的异常。”
有什么想法吗?
我的 UnityConfig.cs
我的 WebApiConfig.cs
还有我的 UnityResolver.cs
还有我的 PracticeController.cs
c# - Register 中的一种类型参数有什么意义而不是两个参数类型注册?
在依赖注入中,我理解为什么我们需要带有 2 个类型参数的 Register()。
从现在开始,类型为I1的参数,在ctors中,会得到A的实例。太好了。我们不需要处理创建,依赖注入容器会给我们带来我们需要的东西(不管是不是 Singleton)。
现在,我不明白的是
我们没有将任何接口映射到这个具体类型B。
它有什么用?
.net - 在 WebAPI 中使用 autofac 在运行时创建的对象中解析每个请求服务
简化问题(下面是复杂且详细的问题): 当我触发此模型的构造函数时,如何使用 autofac 解析服务以获取“简单”类(模型)中的每个请求实例?(这个对象可以有多个实例,但每个实例都必须使用相同的服务实例作为请求范围)。
详细问题: 我有一个配置了 Autofac 6.2 的 .NET Framework 4.8 WebAPI。注册了多个服务,它们都是由构造函数注入的。其中一项服务是 IContext,其作用是在所有请求处理期间处理一些公共数据。在一种情况下,我需要在短时间内模仿其他上下文,因此之后需要恢复旧上下文。这种情况正在广泛使用,所以我有一些想法。我创建了一个对象:
该对象的作用是捕获恢复原始上下文所需的所有数据,但在该对象存在的时间段内上下文被替换。使用场景是:
问题:我不知道如何解决 TemporaryContextHolder 中的组件。如您所见,我尝试通过这种方式通过属性注入服务:
但它不起作用-> NullReferenceExc。我无法在此对象中创建新的生命周期范围,因为我需要这个现有实例。我也无法从容器中手动获取服务(未注册 TemporaryContextHolder),因为由于开发时间很长,我无法向您展示各种异常。你能告诉我如何访问这个特定的服务,或者如何以不同的方式组织代码来实现我的目标吗?谢谢。
c# - ArgumentException:实现类型“UserService”无法转换为服务类型“IUserService”
我在运行应用程序时遇到此错误消息。
4 System.AggregateException HResult=0x80131500 消息=无法构造某些服务(验证服务描述符“ServiceType:ApplicationName.Application.Interfaces.IUserService Lifetime:Scoped ImplementationType:ApplicationName.Application.Services.UserService”时出错:实施类型'ApplicationName.Application.Services.UserService' 无法转换为服务类型'ApplicationName.Application.Interfaces.IUserService')
Source=Microsoft.Extensions.DependencyInjection StackTrace:在 Microsoft.Extensions.DependencyInjection.ServiceProvider..ctor(IEnumerable1 serviceDescriptors, IServiceProviderEngine engine, ServiceProviderOptions options) at Microsoft.Extensions.DependencyInjection.ServiceCollectionContainerBuilderExtensions.BuildServiceProvider(IServiceCollection services, ServiceProviderOptions options) at Microsoft.Extensions.DependencyInjection.DefaultServiceProviderFactory.CreateServiceProvider(IServiceCollection containerBuilder) at Microsoft.Extensions.Hosting.Internal.ServiceFactoryAdapter
1.CreateServiceProvider(Object containerBuilder) 在 Microsoft.Extensions.Hosting.HostBuilder.CreateServiceProvider() 在 Microsoft.Extensions.Hosting.HostBuilder.Build() 在 ApplicationName.Client.WebApi.Program.Main(String[] args) 在 C 中: \Development\Projects\eShopping\ApplicationName.Client.WebApi\Program.cs:第 16 行
此异常最初是在此调用堆栈中引发的:[外部代码]
内部异常1:InvalidOperationException:验证服务描述符时出错'ServiceType:ApplicationName.Application.Interfaces.IUserService Lifetime:Scoped ImplementationType:ApplicationName.Application.Services.UserService':实现类型'ApplicationName.Application.Services.UserService'不能转换为服务类型'ApplicationName.Application.Interfaces.IUserService'
内部异常 2:ArgumentException:实现类型“ApplicationName.Application.Services.UserService”无法转换为服务类型“ApplicationName.Application.Interfaces.IUserService”
下面是我正在使用的代码。
// 基础服务接口
python - pip:约束包到最新版本
我想将某些软件包明确地限制为最新的可用版本,以便冲突解决程序永远不会降级它们。在伪代码中:pip install -U pip==latest
.
.net-framework-4.8 - 如何在 Net48 自托管应用程序中使用 DependencyResolver?
我得到了一个任务,其中包含创建一个包含“HttpSelfHostServer”的 .Net 4.8 应用程序。我一直在寻求将“IServiceCollection 服务”分配给 config.DependencyResolver(System.Web.Http.Dependencies.IDependencyResolver 类型)
我真的不想使用 autofac 或其他框架,但我能找到的所有指南都指向这些框架。微软不是提供了一种方法吗?