2009-04-28 7 views
0

Contexte:Accès contexte utilisateur à partir d'une bibliothèque de classes

  • J'ai une application victoire et une application Web et une bibliothèque de classes partagées.
  • Dans ma classe lib J'ai quelques méthodes statiques pour les requêtes SQL qui ramassent ma chaîne de connexion SQL
  • je stocke ma chaîne de connexion SQL dans une variable de session car il est fixé à journal dans le temps où il est déterminé quelle base de données utiliser.
  • Ma classe lib ne peut pas accéder à mes variables de session (oui, je peux bien sûr utiliser HttpContext.Current ..., mais l'habitude travail dans mon WinApp)

Solution?

J'imagine une sorte de solution où j'ai une classe pour mon utilisateur actuel/contexte et lors de sa création, j'Injecter le comportement préféré, quelque chose comme ceci:

UserContex current = new UserContext(); 
current.SessionHandler = new AspNetSessionHandler(); 

Cependant, je voudrais statique classe que je pourrais utiliser sans avoir à le transmettre tout le temps et ensuite il obtiendrait ses variables soit de la session si utilisé dans une application web ou d'ailleurs (je ne suis pas un développeur winapp) si utilisé dans un winform.

Je vais essayer d'évoquer ce genre de chose, mais ce serait bien si je trouvais une déjà la solution de travail et c'est pourquoi je demande à la folie collective partagée entre vous les gars

+0

Bonjour Mr W Je suis confronté au même problème, puis-je savoir comment l'avez-vous résolu? – bjan

Répondre

1

ČSLA contient une configuration similaire en utilisant une classe ApplicationContext statique qui est discutée dans le livre Expert C# Business Objects de Rockford Lhotka ... Pour traiter le problème de chaîne de connexion, je suggère de créer une classe DataConnection qui renvoie une chaîne de connexion statique depuis le fichier de configuration. la chaîne de connexion provient du Web.config ou du App.config

public class DataConnection 
{ 


    public static string NameOfConnection 
    { 
     get 
     { 
      return ConfigurationManager.ConnectionStrings["NameOfConnection"].ConnectionString; 
     } 
    } 
} 
+0

Eh bien, c'est la chose. J'ai besoin de lire la chaîne de connexion de mes variables de session, car elle varie en fonction de qui se connecte. –

+0

Vous pouvez déplacer la logique qui détermine la chaîne de connexion de l'utilisateur dans la classe DataConnection de telle sorte qu'elle fonctionne à la fois pour win app et web application – Jon

Questions connexes