이 시점에서 어떤 경우에는 내 자신의 ResolverServices 클래스를 구축하는 등 컨트롤러에 항목을 쉽게 주입하고 있습니다. 인생은 좋다 .
어떻게해야할지 알 수없는 것은 프레임 워크가 비 컨트롤러 클래스에 자동으로 주입되도록하는 것입니다. 작동하는 것은 프레임 워크 IOptions
가 내 프로젝트의 구성 인 내 컨트롤러에 자동으로 주입되도록 하는 것입니다.
public class MessageCenterController : Controller
{
private readonly MyOptions _options;
public MessageCenterController(IOptions<MyOptions> options)
{
_options = options.Value;
}
}
제 수업에도 똑같이 할 수 있을지 생각하고 있어요. 다음과 같이 컨트롤러를 모방 할 때 가깝다고 가정합니다.
public class MyHelper
{
private readonly ProfileOptions _options;
public MyHelper(IOptions<ProfileOptions> options)
{
_options = options.Value;
}
public bool CheckIt()
{
return _options.SomeBoolValue;
}
}
내가 실패하는 곳은 다음과 같이 부를 때라고 생각합니다.
public void DoSomething()
{
var helper = new MyHelper(??????);
if (helper.CheckIt())
{
// Do Something
}
}
내가 이것을 추적하는 문제는 실제로 DI에 대해 말하는 모든 것이 컨트롤러 수준에서 말하는 것입니다. 나는 그것이 일어나는 곳에서 사냥을 시도했다.Controller
개체 소스 코드 거기에서는 다소 미쳤습니다.
IOptions의 인스턴스를 수동으로 만들고 MyHelper
생성자에 전달할 수 있다는 것을 알고 있지만 Controllers
.
new
. 해결해야하는 개체에 대해서는 절대 사용 안 함