編集
コメントで指摘されているように、以下の私の答えは間違っています。次のようにリフレクションを使用して、 ResXResourceProviderFactoryを取得できます。
IResourceProvider resxProvider;
string typeName = "System.Web.Compilation.ResXResourceProviderFactory, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a";
ResourceProviderFactory factory = (ResourceProviderFactory)Activator.CreateInstance(Type.GetType(typeName));
resxProvider = factory.CreateGlobalResourceProvider(classKey);
(ローカルリソースプロバイダーを取得するための同様の方法。)
次に、リソースを取得するために必要なのは、GetObjectを呼び出すことだけです。
object resource = p.GetObject("ResourceKey", new System.Globalization.CultureInfo("en"));
GetGlobalResourceObjectメソッドとGetLocalResourceObjectメソッド(HttpContextクラスの一部)を使用して、カスタムローカリゼーションクラス内の.ResXファイルを操作できます。
たとえば、「MyResxFile.resx」(* App_GlobalResources *の下)から「ResourceKey」というリソースを取得するには、現在のカルチャに対して次のように使用します。
HttpContext.GetGlobalResourceObject(
"MyResxFile",
"ResourceKey",
System.Threading.Thread.CurrentThread.CurrentCulture
);