【发布时间】:2020-12-22 04:23:12
【问题描述】:
我试图围绕依赖注入,来自静态类和实例化类的世界。这是我目前拥有的:
[SomeFilter]
public class AController : Controller
{
private readonly IOptions<AppSettings> _appSettings;
public AController(IOptions<AppSettings> appSettings)
{
_appSettings = appSettings;
}
// GET: /characters/
public IActionResult Index()
{
//do something
}
SomeFilter 被立即调用,并执行此操作:
public class SomeFilter: ActionFilterAttribute, IActionFilter
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
OtherClass.RunMe();
}
}
OtherClass 如下所示:
public class OtherClass
{
private readonly IOptions<AppSettings> _appSettings;
public OtherClass(IOptions<AppSettings> appSettings)
{
_appSettings = appSettings;
}
public RunMe()
{
//do something
}
我还在 Startup.cs 中将 OtherClass 注册为 service.Singleton。
我收到一条错误消息:
“非静态字段需要对象引用”
用于OtherClass.RunMe(); 电话。
我假设我可以从代码中的任何位置调用这个类,而不必创建它的新实例?本质上,我如何使用依赖注入从其他类调用方法?
【问题讨论】: