跨解决方案在不同项目中将资源 (Resx) 文件共享为链接项
Sharing Resource (Resx) file as a linked item in different projects across solution
我有一个名为 'MyApplication' 的解决方案,有两个项目:
ProjectA(命名空间MyApplication.ProjectA){.Net Core 2.1}
ProjectB(命名空间MyApplication.ProjectB){.Net Core 2.1 测试项目}
ProjectA 包含一个名为 'Messages.resx'.
的资源文件
我在 ProjectB 中有 Messages.resx Add As Link,每当我从 ProjectB 中的 Messages.resx 读取值时,它都会抛出 System.Resources.MissingManifestResourceException。
我不想在 ProjectB 中直接引用 ProjectA。另外添加第三个带有资源文件的库项目并在 ProjectA 和 ProjectB 中引用它不是一个选项。
如何将资源添加为 Add As Link 并使用它?
比如我有两个mvc项目:WebApplication1和WebApplication3。
我在 WebApplication3 中有一个资源文件(MyData.resx):
MyData.resx:
现在,根据您的需要,我在 WebApplication1 中 MyData.resx 添加为 link:
然后,我可以从 WebApplication1 控制器中的 .rexs 文件中获取数据,如下所示:
public IActionResult Index()
{
var rm = new ResourceManager("WebApplication1.Resources.MyData", Assembly.GetExecutingAssembly());
string username = rm.GetString("Username");
return View();
}
结果:
注意:ResourceManager中的baseName应该是当前项目的命名空间。
我有一个名为 'MyApplication' 的解决方案,有两个项目:
ProjectA(命名空间MyApplication.ProjectA){.Net Core 2.1} ProjectB(命名空间MyApplication.ProjectB){.Net Core 2.1 测试项目}
ProjectA 包含一个名为 'Messages.resx'.
的资源文件我在 ProjectB 中有 Messages.resx Add As Link,每当我从 ProjectB 中的 Messages.resx 读取值时,它都会抛出 System.Resources.MissingManifestResourceException。 我不想在 ProjectB 中直接引用 ProjectA。另外添加第三个带有资源文件的库项目并在 ProjectA 和 ProjectB 中引用它不是一个选项。 如何将资源添加为 Add As Link 并使用它?
比如我有两个mvc项目:WebApplication1和WebApplication3。
我在 WebApplication3 中有一个资源文件(MyData.resx):
MyData.resx:
现在,根据您的需要,我在 WebApplication1 中 MyData.resx 添加为 link:
然后,我可以从 WebApplication1 控制器中的 .rexs 文件中获取数据,如下所示:
public IActionResult Index()
{
var rm = new ResourceManager("WebApplication1.Resources.MyData", Assembly.GetExecutingAssembly());
string username = rm.GetString("Username");
return View();
}
结果:
注意:ResourceManager中的baseName应该是当前项目的命名空间。