簡體   English   中英

將元素傳遞到類C#

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM