2009-04-28 88 views
0

背景:訪問用戶上下文

  • 我有一個雙贏的應用程序和Web應用程序和 共享類庫。
  • 在我班上的lib我有一些靜態 採用何種方法拿起 我的SQL連接字符串的SQL查詢
  • 我存儲在一個 會話變量我的SQL連接字符串,因爲它在時間設定在 日誌它在哪裏確定要使用哪個數據庫 。
  • 我IIb類不能訪問我的會議 變量(是的,我當然可以用 HttpContext.Current ...,但在我winapp這不會 工作)

解決方案?

我設想一種的解決方案,我有我的當前用戶/上下文類和創建時,我注入了首選的行爲,這樣的事情:

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

不過,我想靜我可以使用的類,而不必一直傳遞它,然後它會從會話中獲取它的變量,如果在Web應用程序中使用,或者如果在Winform中使用,則從其他位置(我不是winapp開發人員)。

我會盡量想起了這樣的事情,但是這將是巨大的,如果我發現了一個已經工作的解決方案,這就是爲什麼我呼籲你們

的共享集體瘋狂
+0

Hi先生W 我面臨同樣的問題,我可以知道你是如何解決它的 – bjan 2011-02-12 14:14:25

回答

1

CSLA包含使用類似的設置一個靜態的ApplicationContext類,在Rockford Lhotka的書Expert C#Business Objects中討論......爲了處理連接字符串問題,我建議創建一個DataConnection類,該類從配置文件返回一個靜態連接字符串,它不會影響if連接字符串來自Web.config或App.config

public class DataConnection 
{ 


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

嗯,就是這樣。我需要從會話變量中讀取連接字符串,因爲它取決於登錄的用戶。 – 2009-04-29 06:17:18