深入Resource实现多语言支持的应用详解
首先为假设有一个应用程序CAStudy,接着右键添加一个资源文件Resource1.resx。
Resource1.resx里面如下:
Main函数如下:
static void Main()
{
ResourceManager resourceManager = new ResourceManager(
"CAStudy.Resource1",
Assembly.GetExecutingAssembly());
Console.WriteLine("String1 : " + resourceManager.GetString("String1"));
Console.WriteLine("String1 : " + Resource1.String1);
Console.ReadLine();
}
使用的ResourceManager构造函数如下:
[SecuritySafeCritical]
public ResourceManager(string baseName, Assembly assembly);
在应用程序编译的时候Resource1.resx就会被编译成Resource1的一个类。所以如果你不知道baseName是什么,也可以这样:
ResourceManager resourceManager = new ResourceManager(
Resource1.ResourceManager.BaseName,
Assembly.GetExecutingAssembly());
或者你查看IL代码,可以发现如下:
运行结果如下:
那么我们可以复制Resource1.resx ,从而生成Resource1.en-US.resx。
最新评论