2011-01-27 30 views
1

我正在使用ASP.NET資源國際化。ASP.NET國際化 - 全局/共享資源鍵覆蓋

我有以下結構

/App_LocalResources 
    Default.aspx.resx 

/App_GlobalResources 
    Commmon.resx 

現在我所期待的與ASP.Net資源是我的本地資源文件中共享全局鍵的功能覆蓋。

舉例來說,如果在我的的Default.aspx頁,我有以下幾點:

<asp:Literal Text="<%$ Resources:FirstName %>" runat="server" /> 

而且我有在我的兩個全球性資源文件和地方,我希望當地鍵可以覆蓋共享,但如果在本地資源中找不到,則仍然會遍歷全局。

我發現的問題是能夠使用全局資源要求您提供全局資源文件名。

<asp:Literal Text="<%$ Resources:Common,FirstName %>" runat="server" /> 

...它阻止你能夠因爲有明確的全球名聲明的本地覆蓋

我希望會有指定一個通用密鑰的方式,並將其第一搜索本地資源,如果沒有找到,則搜索全局資源,而無需指定明確的全局文件名。

這是可能的,有沒有辦法從ASP.Net資源獲得這種類型的功能?

回答

1

這只是資源在.NET中的工作方式AFAIK - 我相信你最好的選擇是封裝資源訪問是一個getter方法,它可以在返回之前嘗試匹配給定密鑰的本地資源到全球。雖然不漂亮。

當然總是會有創建和使用自己的ResourceManager的選項,但是從經驗來看,多了比您想象的要痛苦得多。