Структура карты 2.6.1 - PullRequest
0 голосов
/ 05 июля 2010

В моем текущем проекте я пытаюсь заменить Виндзорский IoC в пользу структурной карты (2.6.1). Но возникли проблемы с регистрацией некоторых общих типов. Как мне зарегистрировать IFilterConverter<T>, чтобы использовать FilterConverter<SomeSpecificType>. Я пробовал ConnectImplementationsToTypesClosing (IFilterConverter), но из того, что я прочитал ( статья Джимми Богарда ), мне нужен конкретный тип, определенный следующим образом: - SomeConcreteType : IFilterConverter<SomeSpecificType>, чтобы это работало, и у меня нет тот.

Итак, чтобы повторить, если у меня есть тип, который принимает аргумент конструктора IFilterConverter<SomeSpecificType>, я хочу, чтобы структура структуры предоставила мне FilterConverter<SomeSpecificType>.

В Windsor я использовал опцию конфигурации XML (от которой я хочу избавиться) Но все, что я сделал, это просто настроил конфигурацию так:

<component id="IFilterConverter" service="SomeNamespace.IFilterConverter`1, SomeNamespace" type="SomeNamespace.FilterConverter`1, SomeNamespace" lifestyle="PerWebRequest">

Как мне сделать эквивалент в SM (используя код, а не файлы конфигурации XML)

Спасибо

1 Ответ

1 голос
/ 05 июля 2010

Я думаю, что это должно сделать.

_container = new Container();
_container.Configure(x =>
                         {
                             x.For(typeof (IFilterConverter<>)).Use(typeof (FilterConverter<>));
                         });
...