Я пытаюсь подключить серию декораторов, используя карту структуры, но у меня возникли некоторые проблемы.
Я прочитал этот вопрос , который привел меня к тому, что я могу иметь один украшенный класс, но я не могу заставить работать несколько уровней декоратора. У меня есть класс A, который принимает строку соединения в качестве параметра, а затем класс B и класс C, которые оба являются декораторами для класса A. Я могу получить структурную карту для создания B, который оборачивает A, но я не могу получить C обтекание B A.
Работает на 1 уровне:
For<IQuestionRepository> ()
.Use<LinqToSqlQuestionRepository> ()
.Ctor<string>("connectionString")
.Is(x=>System.Configuration.ConfigurationManager.ConnectionStrings["aspnetdbConnectionString"].ConnectionString)
.EnrichWith (x=>new RecentQuestionCachedRepository(x))
и я подумал, что простое добавление еще одного EnrichWith будет работать так:
For<IQuestionRepository> ()
.Use<LinqToSqlQuestionRepository> ()
.Ctor<string>("connectionString")
.Is(x=>System.Configuration.ConfigurationManager.ConnectionStrings["aspnetdbConnectionString"].ConnectionString)
.EnrichWith (x=>new RecentQuestionCachedRepository(x))
.EnrichWith (y=>new FeaturedQuestionCachedRepository(y));
но это просто дает мне FeaturedQuestionCachedRepository, который оборачивает LinqToSqlQuestionRepository, но RecentQuestionCachedRepository не находится нигде в стеке.
Что я делаю не так?