試圖圍繞依賴注入打包頭,它來自靜態類和實例化類的世界。這是我現在擁有的。非控制器類的依賴注入並調用它們
[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();呼叫。我假設我可以從我的代碼中的任何地方調用這個類,而不必創建它的新實例?從本質上講,我如何從其他類使用依賴注入調用方法?