在asp.net实现多语言支持同样可以使用jsp中的资源文件方式,但是在asp.net中不能直接读取资源文件,需要通过使用resgen讲文件转换为xxx.resources的二进制文件。
同时,需要使用ResourceReader进行读取。
关于resgen的使用,我们可以打开visual studio 命令行工具直接键入resgen xxx.resx xxx.resources即可
- ResourceReader reader = new ResourceReader(Server.MapPath("App_GlobalResources/Resource1.resources"));
- IDictionaryEnumerator enumer = reader.GetEnumerator();
- while (enumer.MoveNext())
- {
- Response.Write("key = " + enumer.Key.ToString() + " , ");
- Response.Write("value = " + enumer.Value.ToString() + "<br>");
- }
- reader.Close();
reader 可以生成枚举类型,所以我们读取资源文件的时候只需要进行枚举操作就可以了。
另外我也思考了一下,不能每次读取的时候我们都读一次资源文件,我觉得如果内容不多的情况下,我们可以放在缓存中,如果有修改的话可以更新下缓存,这样就可以避免重复读取资源文件占用系统资源了。