试图围绕依赖注入打包头,它来自静态类和实例化类的世界。这是我现在拥有的。非控制器类的依赖注入并调用它们
[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一个service.Singleton OtherClass 。
我收到一个错误,指出:“一个对象引用对于非静态字段是必需的”对于OtherClass.RunMe();呼叫。我假设我可以从我的代码中的任何地方调用这个类,而不必创建它的新实例?从本质上讲,我如何从其他类使用依赖注入调用方法?