Мой объект - прокси WCF. Эти объекты перейдут в неисправное состояние, что делает их непригодными для использования. Я не могу контролировать, когда или если они будут переходить. Я могу только обнаружить, что это произошло, и воссоздать новый прокси.
Спасибо за ссылку, приведенный ниже раздел описывает примерно, как я сейчас это делаю:
В качестве альтернативы другой подход заключается в
иметь декоратора к вашим услугам
зарегистрирован в контейнере с
единый образ жизни, но ваш актуальный
базовый сервис зарегистрирован в
контейнер с переходным образом жизни -
тогда, когда вам нужно обновить
компонент просто избавиться от
переходный базовый компонент, удерживаемый
декоратор и заменить его
только что разрешенный экземпляр (разрешить его
используя ключ компонентов, а не
сервис, чтобы избежать получения
декоратор) - это позволяет избежать проблем с
другие одноэлементные сервисы (которые не являются
будучи "освеженным") от удержания
устаревшие услуги, которые были
распорядился сделать их непригодными, но
действительно нужно немного кастинга и т. д.
заставить это работать
Мой вопрос, вместо одного из них:
1) использование статически типизированного декоратора, чтобы обернуть мой RealResource (как выше). Как только вы получаете несколько таких прокси-серверов, становится все труднее создавать декораторы для них всех.
2) использование объекта фабрики, который создает динамический прокси для управления состоянием любого прокси WCF.
2) намного выше, но кажется, что Виндзор уже может сделать для меня. Итак, я хотел бы знать, есть ли какой-нибудь контейнерный автомат, который позволит мне зарегистрировать перехватчик во время конфигурации вместо создания собственной фабрики?
Примерно так: псевдокод:
container.AddComponent("dynamicProxyWrapper", typeof(IRealResource), typeof(RealResource)).UsingInterceptor(typeof(RealResourceInterceptor));