将参数传递给Prism模块



我将所有配置存储在一个名为configurations 的模块中

类似于以下内容:配置模块:

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

现在,在加载模块后,我需要从ConfigureAggregateCatalog向ConnectionString传递一些值。

做这件事的棱镜方式是什么,请提供一些代码。

提前感谢:)

我认为Prism方法是从ConfigurationModule填充ConnectionString,而不是从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);
  }
}

最新更新