Передача параметров в модули Prism - PullRequest
0 голосов
/ 13 марта 2012

Я храню все свои конфигурации в модуле под названием Congigurations

Примерно так: ConfigurationModule:

[Export(typeof(ConfigurationModule))]
    public class ConfigurationModule : NotificationObject
    {
         public string ConnectionString { get; set; }
    }

Теперь мне нужно передать некоторое значение ConnectionString из ConfigureAggregateCatalog после загрузки модуля.

Что такое призменный способ сделать это, пожалуйста, предоставьте некоторый код.

Заранее спасибо:)

1 Ответ

0 голосов
/ 13 марта 2012

Я думаю, что призма способ заполнить ConnectionString от вашего ConfigurationModule, а не от ConfigureAggregateCatalog.Идея состоит в том, чтобы разделить обязанности - ваш ConfigurationModule должен загружать конфигурации, предоставлять их другим модулям и сохранять их в каком-либо хранилище, если это необходимо.Ваш ConfigureAggregateCatalog должен делать в точности так, как он назван - настраивать только контейнер IoC, ничего более.

ОБНОВЛЕНИЕ: В вашем сценарии я предполагаю, что у вас есть что-то вроде AuthenticationModule.Итак, вы можете написать что-то вроде:

[Export]
public class AuthenticationModule
{
  [Import]
  public ConfigurationModule { get; private set; }

  public void OnUserLoggedIn()
  {
    ConfigurationModule.ConnectionString = "your connection string";
  }
}

[Export]
public class AnotherModule
{
  [Import]
  public ConfigurationModule { get; private set; }

  public void DoStuff()
  {
    if (String.IsNullOrEmpty(ConfigurationModule.ConnectionString))
    {
      // user isn't logged in
    }
    var sqlConnection = new SqlConnection(ConfigurationModule.ConnectionString);
  }
}
...