2011-10-04 74 views
4

我需要在ASP.NET中创建一个自定义LocalResourceProvider。看来我必须为此创建一个自定义的ResourcePRoviderFactory。但是,这意味着还要从CreateGlobalResourceProvider返回一个IResourceProvider(null不起作用)。如何创建默认GlobalResourceProvider的实例?

我找不到框架默认的ResourceProvider是什么,所以我可以返回它,所以我不必创建自己的。

(对于默认的LocalResourceProvider也有奖励点,因为我需要更改的是virtualPath,因此能够创建默认实例但通过我自己的传递将使事情更容易)。

回答

0

找到了解决方案。这不是很好,但:

// 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));