Я думаю, что призма способ заполнить 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);
}
}