我正在使用 C# 构建一个 ASP.NET MVC 4 网站。我将所有静态字符串本地化到一个资源文件 (.resx
) 中。我使用 Visual Studio 界面来创建和填充资源文件。在我的 index.cshtml
View 中,我尝试使用资源文件中的字符串之一,如下所示:
@using Namespace.To.RESX.File
...
<h1>@EN_US.GLOBAL_NAME</h1>
<h2>“@EN_US.GLOBAL_SLOGAN”</h2>
...
我可以编译应用程序,但在加载页面时出现运行时错误,提示:
Compiler Error Message: CS0122: 'Namespace.To.RESX.File.EN_US' is inaccessible due to its protection level
查看 resx 设计器文件,我可以看到该类及其所有成员都标记为 internal
。我完全理解 C# 访问控制修饰符的作用、它们的工作原理等...但我不明白为什么 Visual Studio 会像这样限制对资源成员的访问。
为什么 Visual Studio 会这样做?是否有一种(简单的)方法来更改这些访问控制修饰符,或者我是否完全忽略了资源文件的要点?
最佳答案
是的...没看到这个。在设计模式下打开资源文件并更改访问修饰符(至少在 VS 2013 上):
关于c# - 不可访问的内部资源文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24833875/