C# 无法访问的内部资源文件?

C# 无法访问的内部资源文件?,c#,asp.net,asp.net-mvc,visual-studio,resource-files,C#,Asp.net,Asp.net Mvc,Visual Studio,Resource Files,我正在用C#构建一个ASP.NET MVC 4网站。我正在本地化资源文件(.resx)中的所有静态字符串。我使用VisualStudio界面创建和填充资源文件。在我的index.cshtml视图中,我尝试使用资源文件中的一个字符串,如下所示: @using Namespace.To.RESX.File ... <h1>@EN_US.GLOBAL_NAME</h1> <h2>&ldquo;@EN_US.GLOBAL_SLOGAN&rdquo;

我正在用C#构建一个ASP.NET MVC 4网站。我正在本地化资源文件(
.resx
)中的所有静态字符串。我使用VisualStudio界面创建和填充资源文件。在我的
index.cshtml
视图中,我尝试使用资源文件中的一个字符串,如下所示:

@using Namespace.To.RESX.File

...

<h1>@EN_US.GLOBAL_NAME</h1>
<h2>&ldquo;@EN_US.GLOBAL_SLOGAN&rdquo;</h2>

...
在resx设计器文件中,我可以看到该类及其所有成员都标记为
internal
。我完全理解C#访问控制修饰符的功能、工作原理等。。。但是我不明白为什么VisualStudio会像这样限制对资源成员的访问


为什么VisualStudio会这样做?有没有(简单的)方法来更改这些访问控制修饰符,或者我完全忽略了资源文件的要点?

是的。。。我没看到这个。在设计模式下打开资源文件并更改访问修饰符(至少在VS 2013上):


对于Mac/visual studio 2017,请打开.Designer文件并公开您的课程:

文件夹:

将内部更改为公共并保存:

更新:它可能会默认返回内部。每次您要进行的更改都会列出此更改

  • 右键单击资源文件(
    Resource.resx
    )=>属性

  • 自定义工具=>更改为
    PublicResXFileCodeGenerator


  • 我不知道这是否是VS2019中的一个bug,但是根据Oliver Spryn的回答,我可以扩展默认为“内部”的Access Modifier下拉框,但是单击“Public”只是关闭了MouseDown上的下拉框,而没有选择任何选项。因此,如果您单击下拉列表,然后使用键盘向下箭头选择“Public”并按enter键,则会更改该值。

    但如果它们位于同一项目内,内部仍应工作,对吗?
    Compiler Error Message: CS0122: 'Namespace.To.RESX.File.EN_US' is inaccessible due to its protection level