任何人都可以告诉如何访问类库asp.net mvc4中的资源文件吗?我正在构建一个通用的类库,我将在所有项目中使用它。我尝试使用以下代码:
HttpContext.GetGlobalResourceObject();
任何人都可以告诉任何其他方法来访问类库中的资源文件吗?
答案 0 :(得分:5)
根据评论进行编辑,包括最佳做法:
在MVC4中创建资源文件: 在解决方案资源管理器中,右键单击您的项目。 然后,单击“添加”,然后单击“添加ASP.Net文件夹”,然后单击App_GlobalResources。 在新文件夹上,右键单击。然后添加一个新的资源文件。
然后打开此资源文件并添加新资源。 lefter列是您设置键的位置,而更严格的列是您必须在其中插入的值。
然后;它非常简单,您只需编写以下代码部分即可访问所需的值。
在c#方面,它是:
Resources.NameOfYourResFile.NameOfYourResKey
在ASP方面,假设您正在使用剃须刀,它是:
@Resources.NameOfYourResFile.NameOfYourResKey
示例: 如果您创建了一个名为“Global.resx”的文件,并创建了“我的超级网站”作为值的密钥“ApplicationTitle”,您只需编写以下代码行将其放入字符串中:
string siteTitle = Resources.Global.ApplicationTitle;
就是这样
答案 1 :(得分:3)
创建资源时,必须将访问级别从内部(默认情况下)设置为public。在此之后,您只需通过资源名称和生成的静态属性访问您的资源(如果您引用程序集)。
答案 2 :(得分:2)
我建议你为Resources创建一个新的库 完成资源键值对后,将资源库的引用添加到项目中。然后你就能以这种方式访问资源库
<强> Namespace.ReourceLibraryName.Key 强>
答案 3 :(得分:1)
只需在您的类库项目中包含System.Web.dll,就像访问MVC项目一样访问资源文件
HttpContext.GetGlobalResourceObject();
当你在MVC项目中的这个类库项目中添加一个refrence并运行项目时,这段代码将在MVC项目的上下文中执行,你将获得HttpContext
的正确实例。
注意: - 直接使用这样的HttpContext会在您尝试测试此应用程序时产生问题
答案 4 :(得分:1)
您可以将资源文件添加到类库中的任何位置,但我认为您的问题是如何使用它,如果您的资源文件名是Res1.resx并且其中有一个名为message的键,那么您可以调用< / p>
Res1.message
来自该库中的类。但是我相信你想在图书馆外面使用它,因为你需要公开你的资源文件,请参考Visual Studio - Resx File default 'internal' to 'public' 请告诉我这是你需要的还是别的什么?