Обработка этого с помощью sessionattributes сделает код неуклюжим, так как вам придется писать все, если не все в yesnohandler.
Лучше, если бы вы могли использовать стек для отслеживания вызываемых обработчиков.
Когда вы задаете пользователю вопрос «да», вы помещаете объект класса обработчика в стек. Теперь, когда пользователь ответил yesno, вы берете объект-обработчик, который доступен поверх стека, и вызываете его соответствующий метод.
Можно использовать Замок. Ядро. Атрибут DoNotWireAttribute, чтобы мешать свойству быть обеспеченным электричеством контейнером МОК (это находится в Замке. Базовый блок, что означает Вашу библиотеку только, должен взять зависимость от легкого Замка. Базовый блок - если, например, Вы хотите использовать код без инверсии контейнера управления в целом, или в другом контейнере МОК).
Я не полагаю, что существует любой способ препятствовать тому, чтобы проводное соединение произошло в конфигурации XML, но было бы довольно легко добавить поддержку этого - если бы я должен был сделать это, я был бы, вероятно:
Другой подход, который мог работать на Вас, должен просто вручную удалить зависимости из модели, прежде чем любые экземпляры сервиса будут требовать т.е.
kernel.GetHandler(typeof(MyComponent)).ComponentModel.Dependencies.RemoveAll(d => d.DependencyKey == "PropertyThatShouldNotBeWired");
YMMV с тем подходом, хотя - особенно, если у Вас есть startable сервисы или другие средства, которые могут нетерпеливо инстанцировать Вашего компонента после того, как он регистрируется.
Отправленный это на форуме групп Google слишком здесь: http://groups.google.com/group/castle-project-devel/browse_thread/thread/43aa513817bd057a