Похоже, что фабрика контроллеров, которую вы используете для сборки ваших контроллеров, обнуляется в конструкторе HomeController.В ASP.NET MVC контроллеры создаются фабрикой контроллеров, которая по умолчанию является классом DefaultControllerFactory
, который просто вызывает конструктор по умолчанию.
Тот факт, что вы получаете NullReferenceException
вместо , класс HomeController не имеет конструктора по умолчанию означает, что вы настроили фабрику пользовательских контроллеров в Global.asax
, котораядолжен предоставлять экземпляры ваших контроллеров, но эта фабрика пользовательских контроллеров не передает null конструктору HomeController, поэтому, когда позже вы попытаетесь получить доступ к этой службе _profileService.GetProfile()
, вы получите исключение.Вероятно, вы используете какую-то инфраструктуру внедрения зависимостей, и в вашем Application_Start
есть что-то вроде этого:
ControllerBuilder.Current.SetControllerFactory(new SomeCustomControllerFactory());
Так что, если вы используете инфраструктуру DI, вам нужно настроить эту инфраструктуру для передачи конкретной реализацииIProfileService
интерфейс к конструктору.То, как это будет сделано, будет полностью зависеть от используемой вами платформы.