Я использую AsyncController
сказать «AbstractAbcContoller»Невозможно получить доступ к HttpContext или объект запроса в конструкторе с AsyncController
public class AbstractAbcContoller : AsyncController
{
}
, а затем у меня есть еще 3 контроллеры, которые наследуют вновь созданный AbstractAbcContoller
.
Теперь, когда я создаю конструктор любого из этих трех контроллеров и пытаюсь получить доступ к объектам HttpContext/Request, я всегда получаю их как null.
Мне нужно инициализировать объекты службы, которые принимают HttpRequestBase в качестве аргумента в своем конструкторе.
Я должен был решить этот обходной путь вместо этого.
public class AbstractAbcController : AsyncController
{
protected IAbcService GetAbcService(AbstractAbcController controller, HttpRequestBase request)
{
if (controller.GetType() == typeof (AbcAddressVerificationController))
return new AbcAddressVerificationService(request);
if (controller.GetType() == typeof(AbcPhoneVerificationController))
return new AbcPhoneVerificationService(request);
throw new ArgumentException();
}
}
, а затем в контроллер/использование действия что-то вроде этого
IAbcService abcService = GetAbcService(this, Request);
abcService.DoSomething();
который я вроде не нравится, я не уверен, что будет лучше. Пожалуйста посоветуй.