我們將所有應用程序會話存儲到Global類中。如何正確地將應用程序會話存儲到靜態實例中?
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; }
}
}
我們已經創建了另一個類屬性來維護網頁會話到不同MarketingSession
類,如下
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; }
}
}
}
我不是100%肯定這是它維持會話類或不正確的方法。 和可以在此會話中創建非靜態的另一個Class對象嗎?
當我添加MarketingSession
Class屬性時出現以下錯誤。
錯誤10的對象引用需要非靜態字段, 方法或屬性
MyApp.AppSession.Marketing.get
更新我,如果我做來管理我的應用程序會話或不正確的方式? 如果方法是正確的,那麼如何解決這個錯誤?
顯示在您初始化MarketingSession對象的代碼。 –
不在AppSession類中初始化。我會改正方式嗎?我應該在AppSession類的MarketingSession屬性中使用靜態成員嗎? –
MyApp.AppSession.Marketing.get - 您正在使用此方法,就好像它是靜態的。你需要在訪問它的屬性之前初始化你的AppSession對象,或者首先聲明它們是靜態的。 –