2012-03-13 2 views
0

Я хранящих все мои конфигурации в модуле под названием CongigurationsПередача параметров модулей Prism

Что-то вроде этого: ConfigurationModule:

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

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

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

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

ответ

0

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

UPDATE: В вашем случае я полагаю, что у вас есть что-то вроде 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); 
    } 
} 
+0

Предпочитаете, что пользователь входит в систему, и мы хотим заполнить его информацию в ** ConfigurationModule ** и повторно использовать эту информацию позже. Где нужно это делать и как? – Amino

+0

Спасибо за ваш ответ, я действительно не понимаю, чего вы пытаетесь достичь здесь. вы повторили ConfigurationModule в обоих классах, какие-либо объяснения для этого? – Amino

+1

ConfigurationModule отмечен как зависимость AuthenticationModule и AnotherModule. Ваш контейнер IOC (Unity или MEF) увидит директиву [Import] и добавит экземпляр вашего ConfigurationModule в класс AnotherModule. Таким образом, AnotherModule может получить доступ к свойствам ConfigurationModule (например, ConnectionString.) – lecrank

Смежные вопросы