Castle.Windsor: необязательное разрешение компонента из типизированной фабрики

У меня есть настройка службы WCF с Castle.Windsor; сообщения поступают диспетчеру, который отправляет их нужному компоненту (в основномIHandler<Message> с сообщением, являющимся запросом).

Однако в некоторых случаях есть еще один дополнительный, прежде чем обработчик может действовать; сообщение должно быть дополнено данными, поступающими откуда-то еще. Я хочу проверить, существует ли инжектор для типа моего сообщения и, если он есть, запустите его.

IInjector<Message> Injector = InjectorFactory.RetrieveInjector<Message>();
if (Injector != null)
{
    Logger.InfoFormat("IInjector<{0}> OK", input.GetType().Name);
    Injector.InjectCode(input, "Data coming from somewhere else");
}

Причина этого заключается в том, что в будущем кто-то может создать плагин сIInjector<Message> и я хочу забрать его в будущем; но на данный момент его не существует.

Можно ли иметь типизированную фабрику, возвращающую ноль, если компонент не найден, вместоComponentNotFoundException?

РЕДАКТИРОВАТЬ

Как уже говорилось с @Steven, я отвечу на свой вопрос, чтобы составить то, что привело меня к решению и решению, которое я нашел. Сначала давайте переформулируем проблему

У меня есть служба WCF, в основном следуя структуре, описанной Кшиштофом Кушмичем вЭта статья

Однако, прежде чем вызывать обработчики, я хотел иметь опциональную операцию, при которой входящее сообщение было бы изменено при необходимости.

private static void DoActualWork<T>(T command)
{
    IInjector<T> Injector = injectorFactory.GetInjector<T>();
    if (Injector != null) { Injector.InjectThings(command, ""); }
    var handlers = factory.GetHandlersForCommand(command);
    foreach (var handler in handlers)
    {
        handler.Execute();
    }
}

У меня была проблема с инжекторным заводом; когда я попросил его найти несуществующий компонент, он бросил быComponentNotFoundException, Что мне бы понравилось, так это чтобы фабрика признала, что там не было компонента, и просто вернула ноль.

Ответы на вопрос(1)

Ваш ответ на вопрос