【发布时间】:2020-08-28 01:51:44
【问题描述】:
我正在尝试使用内部插件(特定于组织)来执行某些任务,以便通过插件调用方法,我需要传递依赖项。 我已经完成了初始部分,但是当我尝试使用 PreAppStart 注册时:
config.For<IServiceProvider>().Use<ServiceProvider>()
我得到以下错误:
System.ArgumentOutOfRangeException
HResult=0x80131502
Message=Specified argument was out of the range of valid values.
Parameter name: Microsoft.Extensions.DependencyInjection.ServiceProvider must have at least one public constructor to be plugged in by StructureMap
我的分析: 我必须知道 ServiceProvider 类用于点网核心,但我的解决方案是标准点网(4.7),我需要实现这个插件才能完成工作。
我也试过这个:
config.For<IServiceProvider>().Use<ServiceProvider>().Ctor<string>("randomParam").Is("ranVal");
但错误仍然相同。请帮忙!
【问题讨论】:
-
您对
config.For<IServiceProvider>().Use<ServiceProvider>()所做的究竟有什么期望?如果您有一个依赖于IServiceProvider的类,它如何使用该依赖关系以及它有什么期望(即它应该如何配置)? -
感谢您的回复,它实际上在我的解决方案的 PreAppStart(用于注册所有依赖项)类中注册了依赖项。是的,我有一个 nuget 包参考(仅适用于组织,不适用于公共),它有一个依赖于 IServiceProvider 的类。如果我的评论不清楚,请告诉我。
标签: c# .net dependency-injection structuremap service-provider