私は将来のASP.Netプロジェクト用のさまざまなクラスライブラリ(ツールとヘルパー)を作成しています。HttpContext.GetGlobalResourceObjectがクラスライブラリに存在しません
私のソリューションにはWebプロジェクトはありませんが、問題はないと考えられます。 プロジェクトにSystem.Webへの参照を追加しました。これで、コードでHttpContextにアクセスできるようになりました。
using System;
using System.Collections.Generic;
using System.Text;
using System.Web;
namespace ResourceManager
{
public class ResourceManager : IResourceManager
{
HttpContext context;
public ResourceManager(HttpContext ctx)
{
context = ctx;
}
public string GetError(string key)
{
return context.GetGlobalResourceObject("Errors", key).ToString();
}
//And so on........
}
}
しかし残念ながらVisual Studioのインテリセンスを見つけることができませんGetGlobalResourceObject:アプリケーションのグローバルリソースを取得すると仮定し、リソース・マネージャ・クラスのための私のコードの下
。
ヒットF12この静的機能は、HttpContextクラス内にあります。
ビルドを実行した後、私は、このエラーメッセージが出てい:
メンバー「HttpContext.GetGlobalResourceObject(文字列、文字列)」は、インスタンス参照してアクセスすることはできません。代わりに型名で修飾してください
なぜそれが起こっているのか私にとっては面白いです。ヘルプ
私はWebプロジェクトではないので、外部から取得せずにHttpContextを参照することはできません。これは、ASP.Netアプリケーションについて何も知らないクラスライブラリプロジェクトです。 –
しかし、System.Webへの参照があるので、エラーメッセージのように静的なHttpContextを使用する必要があります。 –
それは動作しません。私のコードを新しいクラスライブラリプロジェクトにコピーしてビルドしようとしてください... –