すべてのアプリケーションセッションをグローバルクラスに格納しています。アプリケーションセッションをStaticインスタンスに正しく格納する方法は?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.SessionState;
namespace MyApp
{
[Serializable]
public class AppSession : IRequiresSessionState
{
//Name that will be used as key for Session object
private const string SESSION_SINGLETON = "MyappSession";
string _UserName;
int? _UserID ,_ClientID;
public int? UserID
{
get
{
return _UserID;
}
set
{
_UserID = value;
}
}
public string UserName
{
get
{
return _UserName;
}
set
{
_UserName = value;
}
}
public int? ClientID
{
get
{
return _ClientID;
}
set
{
_ClientID = value;
}
}
public MarketingSession Marketing { get; set; }
}
}
私たちは、私はそれはそれは、クラスやないセッションを維持するための正しい方法である100%を確認していない
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.SessionState;
namespace MyApp
{
[Serializable]
public class MarketingSession : IRequiresSessionState
{
private int? _ChannelId;
public int? ChallelId { get
{
return _ChannelId; }
set { _ChannelId = value; }
}
}
}
以下のように異なるMarketingSession
クラスにそのページセッションを維持するために、別のクラスのプロパティを作成しました。 このセッションで非静的な別のクラスオブジェクトを作成しても問題ありません。
MarketingSession
クラスプロパティを追加したとき、以下のようにエラーが発生します。
エラー10オブジェクト参照が非静的フィールドのために必要とされる、 メソッド、またはプロパティ
MyApp.AppSession.Marketing.get
私は自分のアプリケーションセッションを管理したりしないように正しい方法をやっているなら、私を更新? 方法が正しい場合は、エラーを修正するにはどうすればいいですか?
あなたMarketingSessionオブジェクトを初期化するコードを表示します。 –
AppSessionクラスで初期化されません。正しい方法をしようとしていますか? AppSessionクラスのMarketingSessionプロパティで静的メンバーを使用する必要がありますか? –
MyApp.AppSession.Marketing.get - このメソッドは静的であるかのように使用しています。プロパティにアクセスする前にAppSessionオブジェクトを初期化するか、まず静的に宣言する必要があります。 –