Я реализую IErrorHandler
, чтобы централизовать всю обработку ошибок для моей службы WCF в одном месте. Это работает довольно хорошо:Вкладные зависимости в реализацию IErrorHandler
public class ServiceErrorHandler : IErrorHandler
{
public bool HandleError(Exception error)
{
// ..Log..
}
public void ProvideFault(Exception error, MessageVersion version, ref Message fault)
{
// ..Provide fault..
}
}
Теперь мы используем Ninject впрыснуть зависимости в остальной части сервиса, и я хотел бы сделать то же самое здесь. Так как WCF строит объекты, основанные на моей конфигурации, и я не думаю, что есть какие-то крючки в этот процесс, мне нужно использовать инъекции свойства:
[Inject]
public ILoggingService Logger { get; set; }
Однако, это никогда не кажется, чтобы получить инъекции. Я попытался использовать расширения MVC от Ninject, чтобы установить ServiceErrorHandler
, чтобы разрешить инъекцию, как фильтр, но это, похоже, не помогло. Есть ли способ сделать это?
Вы тоже используете расширение Ninject WCF? –
@ DanielMarbach: У меня есть расширения WCF, но я не вижу в них ничего, что могло бы помочь в этой ситуации. Есть ли что-то, что я мог бы использовать? – zimdanen
@zimdanen Вы решили эту проблему? Лучше всего было бы вводить ILogger без IoC, но с чистым ... Pure DI. Просто добавьте интерфейс ILogger в свой 'ServiceErrorHandler' – Marshall