Предоставление имени метода вместо конкретного имени класса в карте структуры - PullRequest
0 голосов
/ 27 января 2012

У меня есть класс ScreenParameter (реализовать IScreenParameter), который хранит все значения формы в форме окна. Этот класс инициируется, когда пользователь заполняет все поля и нажимает кнопку. Класс в Bussiness Layer ожидает IScreenParameter в своем конструкторе. Я использую Структурную карту, чтобы ввести интерфейс, и он должен быть создан в его контексте. У меня есть метод (GetScreenParameters), который создает и заполняет интерфейс. Я хочу дать имя метода вместо конкретного класса при настройке Структурной карты и попробовал это.

   ObjectFactory.Initialize(initialize =>
        {
            initialize.For<IScreenParameter>().Use(GetScreenParameters);

        });

Но это не работает. Не могли бы вы помочь, как этого добиться?

1 Ответ

0 голосов
/ 27 января 2012

Если код вызывается из экземпляра класса Form, который содержит метод GetScreenParameters, вы можете использовать следующий синтаксис:

initialize.For<IScreenParameter>().Use(() => GetScreenParameters());

Это приведет к тому, что метод GetScreenParameters будет вызываться каждый раз, когда вы захотите получить экземпляр IScreenParameter. Если вам нужен один и тот же экземпляр каждый раз, когда вы сможете зарегистрировать его как синглтон с:

initialize.For<IScreenParameter>().Use(GetScreenParameters());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...