这段时间对扩展Asp.NET本地化有了兴趣,这个有点意思,参考了一些资料,但是对.NET Framework 里面的一些东西却有点疑惑,扩展Asp.NET本地化步骤是这样:
1.扩展 ResourceProviderFactory 这个抽象类,去提供GlobalResourceProvider 和 LocalResourceProvider,这个不多说了,就是工厂模式。
2.扩展IResourceProvider 类,去实现真正访问资源的功能,需要实现一个方法:GetObject 和一个属性: ResourceReader,问题就在这里了。GetObject 提供了一个精确查找资源的问题,譬如 为 GlobalResource 提供查找。
ResourceReader 则是提供了所有的资源的集合,但好像只是对LocalResource资源集合访问的时候才用到。对 GlobalResource 好像没有,但是还是有点疑惑。如果谁清楚,给解释一下。(这个算问题1吧)是否  GetObject 也提供了对 LocalResource 的查找(问题2),就是说 对LocalResource查找的时候是否也调用了它,按照我debug的情况是这样的,就是说 对LocalResource查找的时候也调用了GetObject, 但是 ResourceReader 也被调用了,那我就奇怪了,既然对LocalResource查找的时候调用了ResourceReader去获得了全部资源集合为什么又调用GetObject去获得哪些精确的值(问题3)?还有一个问题,ResourceManager有什么用,和ResourceReader 和GlobalResourceProvider ,LocalResourceProvider什么关系(问题4)?最后一个问题:那个在ASP.NET 叶面里写的为访问LocalResource 用的隐式表达式和显示表达式有什么区别,好像在叶面编译的时候好像有不同,但我不清楚,希望知道的给讲解以下,希望能详细一点(问题4)?注:我说的LocalResource 就是我们一般说的专门为某个叶面做的本地化资源文件。GlobalResource 也就是那些公共资源集合。