Замок Виндзор Удалить Компонент Ложь - PullRequest
3 голосов
/ 25 июня 2010

Я вызываю Kernel.RemoveComponent в моем контейнере Windsor, и он возвращает false. Я знаю, что компонент присутствует (я подтвердил, вызвав GetHandler с тем же ключом, и он возвращает ожидаемую информацию) ... так почему я не могу удалить свой компонент из контейнера? Как я могу устранить это?

У меня есть куча аутентификации и авторизации, которые происходят в независимых обработчиках и компонентах в моих службах WCF до установки OperationContext (OpertaionContext.Current по-прежнему равен нулю). В течение этого периода мне нужен доступ к сообщению запроса из контекста запроса. Я хотел бы сохранить экземпляр RequestContext в моем контейнере с временем жизни для каждого потока. При каждом новом запросе мне нужно перезаписывать этот экземпляр, чтобы не получить неверное сообщение запроса. Это просто не хорошая задача для Виндзора? Если я не смогу удалить компонент до перерегистрации каждого нового RequestContext, то все RequestContexts никогда не будут удалены, верно?

Спасибо!

1 Ответ

2 голосов
/ 25 июня 2010

RemoveComponent не удалит компонент, если есть другие компоненты, зависящие от него.Почему вы удаляете компонент, а не помещаете его в контейнер?

...