Есть ли у Strucutremap возможности перехвата, зачем мне для этого нужна другая библиотека, например Виндзорский замок?

У Strucutremap есть возможности перехвата, зачем мне для этого нужна еще одна библиотека, например, Виндзорский замок? Есть ли родной способ из Structuremap сделать это?

Ведение журнала AOP с помощью StructureMap - это аналогичный вопрос, но ответ остается за прокси-замком.

Спасибо

1 ответ

Решение

Документация отвечает на это:

В StructureMap 2.5+ добавлена ​​возможность постобработки или даже перехвата и замены создаваемых объектов. Хотя StructureMap никогда не будет включать собственную модель аспектно-ориентированного программирования (миру не нужна новая), методы перехвата, показанные ниже, можно использовать для применения AOP времени выполнения из существующих инструментов AOP, таких как блок приложения внедрения политики от Microsoft.

В общем, перехват указывается тремя способами:

1) OnCreation() - регистрирует действие для запуска нового объекта после создания

2) EnrichWith() - Регистрирует Func, который запускается против нового объекта после создания и дает вам возможность вернуть объект, отличный от исходного объекта.

3) Пользовательский класс, который реализует TypeInterceptor интерфейс (модель времени выполнения всех методов перехвата)

Короче говоря, возможности перехвата StructureMap связаны с манипулированием / заменой сконфигурированных объектов в контейнере - без применения перехвата в стиле AOP.

Итак, подведем итог:

Имеет ли Strucutremap возможности перехвата

Да, но не для перехвата в стиле АОП

Зачем мне нужна еще одна библиотека, например Виндзорский замок?

Потому что AOP не входит в сферу применения архитектуры StructureMap. Уже есть несколько хороших решений (в том числе Castle Proxy).

Другие вопросы по тегам