Конструктор типа: "Namespace.type" не найден

Я использую Castle.Windsor как МОК.

Поэтому я пытаюсь разрешить тип службы в конструкторе HTTPHandler. Я получаю эту ошибку: "Конструктор типа: "Namespace.type"не найден". В моей конфигурации есть следующие записи для типа службы: IDocumentDirectory

<component id="restricted.content.directory" service="org.myorg.foundations.services.content.IDocumentDirectory, org.myorg.foundations.services" type="org.myorg.foundations.services.content.RestrictedLocalizationDocumentDirectory, org.myorg.foundations.services">
    <parameters>
      <contentDirectory>${content.directory}</contentDirectory>
      <localizations>
        <array>
          <item>en-us</item>
          <item>es-us</item>
        </array>
      </localizations>
    </parameters>
  </component>

  <component id="content.directory" service="org.myorg.foundations.services.content.IDocumentDirectory, org.myorg.foundations.services" type="org.myorg.foundations.services.web.client.WebServiceDocumentDirectory, org.myorg.foundations.services.web.client">
    <parameters>
      <webServiceURL>#{contentDirectoryWebsiteUrl}</webServiceURL>
    </parameters>
  </component>

В моем новом обработчике конструктор выглядит так:

 public HeartBeatHttpHandler(IDocumentDirectory contentDirectory)
    {
        _contentDirectory = contentDirectory;
    }

Я никогда не получал эту ошибку, используя Castle.Windsor. Может кто-нибудь объяснить?

Спасибо!

1 ответ

Решение

Вы не можете внедрить зависимость в управляемый код.NET HTTPHandler. Объекты, которые реализуют IHttpHandler, должны иметь конструктор без параметров.

Вместо этого я использовал контейнер приложений. Который не был бы моим первым выбором.

-Ник

Другие вопросы по тегам