StructureMap и шаблон декоратора
Я использую StructureMap, v. 2.5.3, и у меня возникают проблемы с объединением реализаций в интерфейсе для реализации шаблона Decorator.
Я привык к Виндзору, где можно называть варианты реализации интерфейса и отправлять именованный импл. в другой (по умолчанию) вкл.
Это стандартная версия без оформления, которая отлично работает:
ObjectFactory.Initialize(registry =>
{
registry.ForRequestedType<ICommentService()
.TheDefault.Is.OfConcreteType<CommentService>();
... }
Это ctor на декораторе, который я хочу назвать:
public CommentAuditService( ICommentService comm,entService,
IAuditService auditService )
Это работает, но не дает мне доступ к украшенному объекту:
registry.ForRequestedType<ICommentService>()
.TheDefault.Is.OfConcreteType<CommentService>()
.EnrichWith(x => new CommentAuditService());
Это займет у меня инф. цикл:
registry.ForRequestedType<ICommentService>()
.TheDefault.Is.OfConcreteType<CommentService>()
.EnrichWith(x => new CommentAuditService( new CommentService(),
new AuditService()));
Пока это то, что мне кажетсядолжен работай:
registry.ForRequestedType<ICommentService.()
.TheDefault.Is.OfConcreteType<CommentAuditService>()
.WithCtorArg("commentService")
.EqualTo(new CommentService());
Однако он отправляет его в бесконечный цикл создания новых экземпляров CommentAuditService
У кого-нибудь есть быстрый ответ? (кроме переключения на Castle.Windsor, с которым я сейчас очень близок)