.Net平台下工作好几年了,资源文件么,大多数使用的是.resx文件。它是个好东西,很容易上手,工作效率高,性能稳定。使用.resx文件,会在编译期动态生成已文件名命名的静态类,因此它的访问速度当然是最快的。但是它也有个最大的缺点,就是修改资源文件后,项目必须重新编译,否则修改的资源不能被识别。这对于维护期的工作来讲,非常麻烦。尤其是已经上线的项目,即使是修改一个title的显示,也需要停掉项目。由于本人做了好几年的维护,应该是从工作到现在,一直没有间断过的做维护项目,因此深受其害!必须找到一个方案,规避掉这个令人头疼的问题。
好了,铺垫的够多了,进入正题:使用自定义XML文件作为资源,完成本地化、国际化(该篇参考Artech的如何让ASP.NET默认的资源编程方式支持非.ResX资源存储)。
首先,我们需要一个资源访问接口,IResourceManager。它提供一组返回资源内容的方法签名:
1 /// <summary> 2 /// 资源访问接口 3 /// </summary> 4 public interface IResourceManager 5 { 6 /// <summary> 7 /// 从资源文件中获取资源 8 /// </summary> 9 /// <param name="name">资源名称</param> 10 /// <returns></returns> 11 string GetString(string name); 12 13 /// <summary> 14 /// 从资源文件中获取资源 15 /// </summary> 16 /// <param name="name">资源名称</param> 17 /// <param name="culture">区域语言设置</param> 18 /// <returns></returns> 19 string GetString(string name, CultureInfo culture);