1

Я получаю ошибки для моего HelpController т.е.для инъекций зависимых пакетов HttpConfiguration в простом Injector

Конструктор типа HelpController содержит параметр с именем «конфигурацией» и типа HttpConfiguration, который не зарегистрирован. Пожалуйста, убедитесь, что HttpConfiguration зарегистрирован или сменил конструктор HelpController.

Есть ли альтернатива, чтобы решить эту проблему, потому что я использовать конфигурацию, чтобы получить Configuration.GetModelDescriptionGenerator();

public class HelpController : Controller 
    { 
     private const string ErrorViewName = "Error"; 


     public HelpController(HttpConfiguration config) 
     { 
      Configuration = config; 
     } 

     public HttpConfiguration Configuration { get; private set; } 
     . 
     . 
     . 
     . 
     . 

     public ActionResult ResourceModel(string modelName) 
     { 
      if (!String.IsNullOrEmpty(modelName)) 
      { 
       ModelDescriptionGenerator modelDescriptionGenerator = Configuration.GetModelDescriptionGenerator(); 
       ModelDescription modelDescription; 
       if (modelDescriptionGenerator.GeneratedModels.TryGetValue(modelName, out modelDescription)) 
       { 
        return View(modelDescription); 
       } 
      } 

      return View(ErrorViewName); 
     } 
+0

Вы пробовали зарегистрировать 'HttpConfiguration'? – Steven

+0

@Steven как я могу зарегистрировать его без использования интерфейса? –

+1

Я думаю, что я не совсем понимаю ваш вопрос. Вы просто зарегистрировали его. Попробуйте 'container.RegisterSingleton (config);'. – Steven

ответ

2

Измените конструктор private и положить обратно в конструктор без параметров, сгенерированный VS. Ваш HelpController должен выглядеть следующим образом.

public class HelpController : Controller 
{ 
    private const string ErrorViewName = "Error"; 

    public HelpController() 
     : this(GlobalConfiguration.Configuration) 
    { 
    } 

    private HelpController(HttpConfiguration config) 
    { 
     Configuration = config; 
    } 


    public HttpConfiguration Configuration { get; private set; } 
}