クラスをセッション変数として保存しようとしています。
get と set を使用して、さまざまなページのすべてのセッション変数を保持するように設計された「SVars.cs」という App_Code ページがあります。
例えば:
public static int Account {
get { return (string)HttpContext.Current.Session["Account"];}
set { HttpContext.Current.Session["Account"] = value; }
}
これにより、次のようなコマンドでアカウントにアクセスできます。
SVars.Account = "TestUser";
Test.Text = Svars.Account;
さて、私の質問は、クラスをセッション変数として保存するときにこれを行う方法はありますか?
クラスを保存できるようですが、クラス内の関数や変数ではなく、クラス全体を使用する場合にのみ動作させることができます。したがって、オプションは、クラスの新しいインスタンスを作成してから保存することです。しかし、これは私のページのいくつかで特に不格好です。
public static myClass Compass {
get { return (myClass)HttpContext.Current.Session["Compass"]; }
set { HttpContext.Current.Session["Compass"] = value; }
}
myClass のメンバーに直接アクセスして影響を与えたいと考えています。
お気に入り:
SVars.Compass.angle = 34;
SVars.Compass.calculate();
Textbox.Text = "The direction is " + SVars.Compass.direction;
など、しかし、これを試してみると、エラーが発生します。
非静的フィールド、メソッド、またはプロパティ 'SVars.Compass.get' にはオブジェクト参照が必要です