2010-07-08 65 views
3

我知道可以使用以下語法設置Label的文本。ASP.NET:以編程方式訪問全局資源的兩種方式

lblMessage.Text = (string)GetGlobalResourceObject("resxFile", "message"); 

使用下面的語法有什麼好處和缺點?

lblMessage.Text = Resources.resxFile.message; 

第二種方法不適用於本地資源文件。本地資源文件是否有不同的語法?

+0

注意,第二種方式訪問資源文件僅適用於不打算本地化並因此將其命名爲「Resources.TextResources.resx」而非「Resources.TextResources.en.resx」 – Christian 2011-02-14 07:33:32

回答

2

第二種方法看起來更好,因爲它是強類型的。如果您更改了資源文件名或資源值名稱,則會出現編譯錯誤。如果你需要動態獲取資源,那麼你必須以第一種方式來完成,否則使用switch語句或類似的東西。

如果您正在使用asp.net 2.0或更高版本居然有隻使用標記來設置標籤的第三個辦法:

<asp:Label ID="Label1" runat="server" Text="<%$ Resources:resxFile,message %>" /> 

均田與本地化有關:http://quickstarts.asp.net/QuickStartv20/aspnet/doc/localization/localization.aspx