[英]passing elements into class c#
之前我問過類似的問題,如果這有點重復,我很抱歉。
這是我的問題,我有一個母版頁,該母版頁在頁面加載時帶有標簽,我將此控件傳遞給我擁有的全局類,該類內部如下所示:
global class:
private static label myLabel;
public label updateLabel
{
set { myLabel = value;}
get { return myLabel;}
}
在母版頁加載事件上
global.updateLabel = labelOnMasterPage;
現在說我在應用程序的其他地方有一個控件,我說
global.updateLabel.Text = "my new text for label";
這將更新母版頁上的標簽,並且一切正常。 現在我的操作僅允許一個用戶登錄,並且該應用程序將有多個用戶,我的問題是,如果我在一個用戶上更新標簽,則在全局類中聲明標簽為靜態,這會影響其他用戶看到的內容?
有更好的方法嗎? 謝謝你的時間。
是的,這里的static
將適用於所有訪問它的代碼,無論線程還是用戶。 在像ASP.NET這樣的高度線程化的環境中想要static
字段的情況很少見。
您還人為地延長了標簽實例的生命周期長超越之意。
還有其他選擇,例如用戶的會話或應用程序級別-但是存儲字符串 (如果有的話),而不存儲標簽對象。
如果它是靜態類,則所有用戶都將看到相同的內容。
由於線程數量的原因,您需要在ASP.net應用程序中使用這種方法時要小心。 如果您確實想執行此操作,則可能應該使用鎖將其設置為線程安全。
就我個人而言,我會將其存儲在數據庫中,這種方法似乎很棘手。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.