2012-03-13 2 views
0

je stocke toutes mes configurations dans un module appelé Congigurationsparamètres Passing aux modules Prism

Quelque chose comme ceci: ConfigurationModule:

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

Maintenant je dois passer une valeur à ConnectionString à partir de ConfigureAggregateCatalog après le chargement du module.

Quelle est la méthode prism de faire ceci, s'il vous plaît fournir du code.

Merci à l'avance :)

Répondre

0

Je pense ainsi Prism est de remplir ConnectionString de votre ConfigurationModule, pas de ConfigureAggregateCatalog. L'idée est de séparer les responsabilités - votre ConfigurationModule devrait charger les configurations, les fournir à d'autres modules et les sauvegarder dans un référentiel si nécessaire. Votre ConfigureAggregateCatalog devrait faire exactement comme son nom - configurer uniquement le conteneur IoC, rien de plus.

MISE À JOUR: Dans votre scénario, je suppose que vous avez quelque chose comme AuthenticationModule. Ainsi, vous pouvez écrire quelque chose comme:

[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

Supposons que l'utilisateur se connecte au système et que nous souhaitons remplir son infomation dans ** ConfigurationModule ** et réutiliser cette information plus tard. Où doit-on faire cela, et comment? – Amino

+0

Merci pour votre réponse, je n'ai vraiment pas ce que vous essayez d'atteindre ici. vous avez répété ConfigurationModule dans les deux classes, une explication pour cela? – Amino

+1

ConfigurationModule est marqué comme une dépendance de AuthenticationModule et AnotherModule. Votre conteneur IOC (Unity ou MEF) verra la directive [Import] et injectera une instance de ConfigurationModule dans la classe AnotherModule. De cette façon, AnotherModule peut accéder aux propriétés de ConfigurationModule (comme ConnectionString.) – lecrank

Questions connexes