我寫了一個ASP.NET HttpModule,並且我有一個靜態幫助類,用於加載和存儲請求生命週期的配置數據。HttpModule和靜態類,做多個請求共享相同的靜態數據?
由於靜態構造函數必須是無參數的,我有一個靜態SetConfigName方法,我在HttpRequest的處理開始時調用。
public static void SetConfigName (string configName)
{
// load data specific to given configName
}
也有靜態的get(),稍後HttpRequest中的處理過程中調用的方法。
加載的配置數據對於每個請求可能不同(基於URL中的值),所以我做了而不是希望其他請求在我調用SetConfigName後共享靜態數據。
所以問題是,做多個請求共享相同的靜態數據,還是每個新的請求都得到一個單獨的靜態類的副本? (如果數據是共享的,如何避免呢?是讓非靜態類的唯一選擇?)
(順便說一句,我不使用的Global.asax。)