Как обрабатывать исключение конструктора при использовании Autofac WcfIntegration

Есть ли способ обработать исключение, созданное конструктором службы WCF, когда этот конструктор принимает зависимость, и это создание экземпляра зависимости контейнером IoC (AutoFac в этом случае )что вызывает исключение ?

Рассмотрим сервис WCF со следующим конструктором:

public InformationService(IInformationRetriever informationRetriever)
{
    _informationRetriever = informationRetriever;
}
//... the service later makes use of the injected InformationRetriever

Служба использует AutoFac WcfIntegration иAutofacWebServiceHostFactory(это служба RESTful ).

Зависимости прописаны в файле global.asax.cs сервиса, т.е.:

builder.RegisterType<InformationRetriever>()
               .As<IInformationRetriever>()

Теперь реализация InformationRetrieverвыполняет некоторые проверки в своем конструкторе, чтобы убедиться, что все готово для выполнения своей работы. Когда он обнаруживает проблему на этом этапе, он выдает исключение.

Однако я не хочу, чтобы вызывающая сторона службы получала исключение AutoFac :

An exception was thrown while invoking the constructor... on type InformationRetriever

. Фактически я пытаюсь проверить:

Учитывая , служба InformationService работает

. Когда я вызываю метод GetSomeInformation ()

И InformationRetriever не может быть создан

Затем я хочу вернуть понятное сообщение об ошибке

И Зарегистрируйте фактическое исключение

Является ли это проблемой моего дизайна или существует известный шаблон для преодоления или предотвращения этой проблемы?

Я искал вокруг и не мог найти никакой информации по этому типу проблемы.

7
задан David Sette 14 July 2012 в 16:19
поделиться