De toute façon, j'ai décidé de le faire d'une autre manière et je l'ai appelé SessionManager. Je veux juste sortir de taper le nom de la variable de session chaque fois que je dois l'employer et ceci est pour empêcher une faute de frappe le nom de variable de session .. ainsi ceci que je suis venu.
using System;
using System.Collections;
using System.Collections.Generic;
using System.Web;
using System.Web.SessionState;
public class SessionManager : IRequiresSessionState
{
public SessionManager()
{
}
string _sessionID = string.Empty;
public string SessionID
{
get
{
if (Get("SessionID") == null) Save("SessionID", string.Empty);
return Get("SessionID").ToString();
}
set
{
this._sessionID = value;
Save("SessionID", value);
}
}
bool _isLoggedIn = false;
public bool isLoggedIn
{
get
{
if (Get("isLoggedIn") == null) Save("isLoggedIn", false);
return Convert.ToBoolean(Get("isLoggedIn").ToString());
}
set
{
this._isLoggedIn = value;
Save("isLoggedIn", value);
}
}
string _username = string.Empty;
public string Username
{
get
{
if (Get("Username") == null) Save("Username", string.Empty);
return Get("Username").ToString();
}
set
{
this._username = value;
Save("Username", value);
}
}
int _selectedCID = 0;
public int SelectedCID
{
get
{
if (Get("SelectedCID") == null) Save("SelectedCID", 0);
return Convert.ToInt32(Get("SelectedCID"));
}
set
{
this._selectedCID = value;
Save("SelectedCID", value);
}
}
string _selectedCIDValPath = string.Empty;
public string SelectedCIDValPath
{
get
{
if (Get("SelectedCIDValPath") == null) Save("SelectedCIDValPath", 0);
return Get("SelectedCIDValPath").ToString();
}
set
{
this._selectedCIDValPath = value;
Save("SelectedCIDValPath", value);
}
}
#region methods
void Save(string name, object value)
{
if (HttpContext.Current.Session[name] != null)
{
HttpContext.Current.Session[name] = value;
}
else
{
HttpContext.Current.Session.Add(name, value);
}
}
object Get(string name)
{
return HttpContext.Current.Session[name];
}
#endregion
}
Je ne vois pas comment cela est possible. Une interface est juste une définition d'un contrat. Pour passer des informations d'une classe (que je suppose être code-behind ou quelque chose sur le serveur) à une page (qui est basée sur le client) implique: a) cookie, b) viewstate, c) valeur cachée ou autre valeur de formulaire, d) appel ajax, ou e) quelques autres qui m'échappent. Une interface est une définition, pas un mécanisme. –
Merci D. Très bien, question rapide. Est-il possible d'ajouter les valeurs STRUCT dans Session en tant que valeur? par exemple - SessionStates ss = new SessionStates(); ss.Username = "testing"; Session.Add ("MySession", ss); mais je ne suis pas sûr de savoir comment le récupérer. – jaysonragasa
Désolé: SessionStates ss = (SessionStates) Session ["MySession"]; – jaysonragasa