c# - 不可访问的内部资源文件?

标签 c# asp.net asp.net-mvc visual-studio resource-files

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

@using Namespace.To.RESX.File

...

<h1>@EN_US.GLOBAL_NAME</h1>
<h2>&ldquo;@EN_US.GLOBAL_SLOGAN&rdquo;</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 上):

enter image description here

关于c# - 不可访问的内部资源文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24833875/

相关文章:

asp.net - 请等待对话框并在 ASP.NET 中下载文件

javascript - 如何在 Javascript 中加载 KendoGrid 的最后一页?

c# - Report Viewer 控件不显示来自 SSRS 的报告

c# - DAL、 session 、缓存架构

编辑器模板上的 Javascript

c# - UserManager.FindByIdAsync(User.Identity.GetUserId()) 是否缓存?

c# - MvcSiteMapProvider 不适用于简单的 MVC.SiteMap 文件

c# - 与 TPT 代码优先 Entity Framework 中的引用约束冲突

c# - WPF-mvvm。我怎样才能实现这样的 View (设计,图形用户界面)?

c# - C#中Int32的扩展方法