Использование UnityEventAggregator только из Prism - PullRequest
2 голосов
/ 30 июля 2011

Я пытаюсь использовать агрегатор событий Unity для обмена сообщениями между различными частями приложения. В настоящее время это единственная особенность платформы Prism, которую я хотел бы использовать. У меня возникли проблемы с пониманием основных концепций, которые я считаю.

Моя цель в некоторых местах - иметь возможность транслировать определенное событие, а затем забрать это событие в других местах. Код, который я нашел для этого, требует доступа к контейнеру Unity, который, как я могу сказать, требует конфигурации в загрузчике, а загрузчик должен создать экземпляр окна. Похоже, что в моей ситуации нужно прыгать через много дополнительных оборотов, когда я просто хочу использовать агрегатор событий.

Может ли кто-нибудь указать мне правильное направление для использования минимального кода для использования агрегатора событий и ничего другого из Prism?

Ответы [ 2 ]

1 голос
/ 13 августа 2011

Оказывается, все, что нужно сделать, - это создать экземпляр класса EventAggregator, который предоставляет призма. Контейнер не требуется. Я сделал это в одиночку. Вот код, который я использовал:

public class MyEventAggregator
{
    private static MyEventAggregator instance = new MyEventAggregator();

    public static MyEventAggregator GetInstance()
    {
        return instance;
    }

    private EventAggregator _Aggregator;
    public EventAggregator Aggregator
    {
        get
        {
            return _Aggregator;
        }
    }

    private MyEventAggregator()
    {
        _Aggregator = new EventAggregator();
    }
}
0 голосов
/ 08 августа 2011

Вам не нужно инициализировать свой контейнер Unity в загрузчике, и загрузчик не требуется для создания экземпляра окна.Вы можете инициализировать свой контейнер Unity в любом классе, который вы хотите.Единственная проблема - распространить экземпляр Unity на ваше приложение, чтобы иметь доступную ссылку там, где это необходимо.

...