【发布时间】:2014-07-18 21:11:39
【问题描述】:
我正在使用 C# 构建一个 ASP.NET MVC 4 网站。我在资源文件 (.resx) 中本地化所有静态字符串。我使用 Visual Studio 界面来创建和填充资源文件。在我的index.cshtml 视图中,我尝试使用资源文件中的字符串之一,如下所示:
@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 为什么要这样做?有没有(简单的)方法来更改这些访问控制修饰符,还是我完全错过了资源文件的要点?
【问题讨论】:
标签: c# asp.net asp.net-mvc visual-studio resource-files