C# ASP.NET国际化-全局/共享资源密钥覆盖
我正在使用ASP.NET资源国际化 我有以下结构C# ASP.NET国际化-全局/共享资源密钥覆盖,c#,asp.net,localization,internationalization,C#,Asp.net,Localization,Internationalization,我正在使用ASP.NET资源国际化 我有以下结构 /App_LocalResources Default.aspx.resx /App_GlobalResources Commmon.resx 现在我希望ASP.Net资源能够覆盖本地资源文件中的共享全局密钥。 例如,如果在我的Default.aspx页面中,我有以下内容: <asp:Literal Text="<%$ Resources:FirstName %>" runat="server" /&
/App_LocalResources
Default.aspx.resx
/App_GlobalResources
Commmon.resx
现在我希望ASP.Net资源能够覆盖本地资源文件中的共享全局密钥。
例如,如果在我的Default.aspx页面中,我有以下内容:
<asp:Literal Text="<%$ Resources:FirstName %>" runat="server" />
我在全局资源文件和本地资源文件中都有FirstName,我希望本地密钥会覆盖共享密钥,但如果在本地资源中找不到它,则仍然属于全局密钥
我发现的问题是,要使用全局资源,需要提供全局资源文件名
<asp:Literal Text="<%$ Resources:Common,FirstName %>" runat="server" />
…由于显式全局文件名声明,因此无法进行本地重写
我希望有一种方法可以指定一个通用密钥,让它首先搜索本地资源,如果没有找到,则搜索全局资源,而不需要指定显式的全局文件名
<asp:Literal Text="<%$ Resources:Common,FirstName %>" runat="server" />
这是可能的,有没有一种方法可以从ASP.Net资源中获得这种类型的功能?这不是.Net AFAIK中资源的工作方式-我相信最好的办法是封装资源访问是一种getter方法,它可以在返回到全局之前尝试将本地资源与给定的键匹配。不过不漂亮
当然,始终可以选择创建和使用自己的ResourceManager,但从经验来看,这比您想象的要痛苦得多。这不是.NET AFAIK中资源的工作方式-我相信您最好的选择是封装资源访问是一种getter方法,它可以尝试将本地资源与在返回到全局之前,先给出关键点。不过不漂亮 当然,总是可以选择创建和使用自己的ResourceManager,但从经验来看,这比你想象的要痛苦得多