Как передать параметры из оболочки в модули через конструкторы в проекте Silverlight, использующем Prism 4.0 для интеграции - PullRequest
1 голос
/ 18 июля 2011

У меня есть основной проект Silverlight Shell, который вызывает несколько проектов модуля Silverlight.Мне нужно передать параметры в проекты моего модуля через конструкторы.

Кто-нибудь может мне помочь решить эту проблему?

Ответы [ 2 ]

3 голосов
/ 18 июля 2011

«Спроси, и получишь» - это девиз МОК:)

Prism использует инъекцию через UnityContainer . Когда модуль загружен, он разрешает любые зарегистрированные интерфейсы , указанные в конструкторе модуля.

Просто укажите интерфейс для объекта, который вы ранее зарегистрировали как одноэлементный, и он будет передан любому модулю. Поместите все ваши настройки / параметры в этот синглтон.

Если вам нужна дополнительная информация, просто спросите.

1 голос
/ 09 марта 2014

Зарегистрируйте объект в контейнере.

class MyBootStrapper : UnityBootstrapper
{
    protected override void ConfigureContainer()
    {
        base.ConfigureContainer();
        this.Container.RegisterInstance(typeof(IMyInterface), new MyInterfaceImpl());
    }
}

Теперь конструктор модуля с радостью принимает этот объект.

class ContentModule : IModule
{
    private readonly IMyInterface _myInterfaceImpl;

    public ContentModule(IMyInterface myInterfaceImpl)
    {
        _myInterfaceImpl = myInterfaceImpl;
    }

    #region IModule Members
    //
    #endregion
}

Предоставлено: TrueBlueAussie

...