Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.NET国际化-全局/共享资源密钥覆盖_C#_Asp.net_Localization_Internationalization - Fatal编程技术网

C# 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" /&

我正在使用ASP.NET资源国际化

我有以下结构

 /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,但从经验来看,这比你想象的要痛苦得多