【问题标题】:How can I create an instance of the default GlobalResourceProvider?如何创建默认 GlobalResourceProvider 的实例?
【发布时间】:2011-10-04 10:18:42
【问题描述】:
我需要在 ASP.NET 中创建一个自定义 LocalResourceProvider。看来我必须为此创建一个自定义 ResourcePRviderFactory。但是,这也意味着从 CreateGlobalResourceProvider 返回一个 IResourceProvider(null 不起作用)。
我找不到框架默认的 ResourceProvider 是什么,所以我可以返回它,所以我不必创建自己的。
(默认 LocalResourceProvider 也有加分,因为我需要更改的只是 virtualPath,所以能够创建默认实例但通过我自己的通行证会让事情变得更容易)。
【问题讨论】:
标签:
c#
.net
asp.net
localization
webforms
【解决方案1】:
找到了解决办法。不过,这并不好:
// HACK: The default provider is internal, so we have to use reflection to create it, so we can steal it's behaviour.
string typeName = "System.Web.Compilation.ResXResourceProviderFactory, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a";
defaultFactory = (ResourceProviderFactory)Activator.CreateInstance(Type.GetType(typeName));