我使用下面的代码,会话变量在 Common 类和 SessionVariables struct下声明。
会话变量名称变得很长,你知道如何在我的情况下最小化变量名吗?我可以使用像SessionVariables.IsLogout这样的变量名而不包括类名吗?
会话[Common.SessionVariables.IsLogout]
public class Common
{
public struct SessionVariables
{
public static string IsLogout = "IsLogout";
}
}
答案 0 :(得分:2)
您可以使用using
alias directive。然后,您将能够以SV.IsLogout
的形式访问变量,如下例所示:
namespace Foo
{
using SV = Common.SessionVariables;
public class Common
{
public struct SessionVariables
{
public static string IsLogout = "IsLogout";
}
}
public class Example
{
public void Bar()
{
string test = SV.IsLogout;
}
}
}
答案 1 :(得分:2)
为HttpSessionState
类创建扩展方法。
public static class HttpSessionStateExtensions
{
public static bool IsLoggedOut(this HttpSessionState instance)
{
return instance[Common.SessionVariables.IsLogout] == true.ToString();
}
public static bool SetIsLoggedOut(this HttpSessionState instance, bool value)
{
instance[Common.SessionVariables.IsLogout] = value.ToString();
}
}
允许您使用(键入和所有内容):
session.IsLoggedOut();
session.SetIsLoggedOut(false);
答案 2 :(得分:1)
这样做的一种方法是从Common类继承您的类。然后,您可以直接将变量称为SessionVariables.IsLogout。
答案 3 :(得分:1)
这只是缩短它的一种方法
public static class Account
{
public static int UserID
{
get { return Session[SessionVariables.UserID]; }
set { Session[SessionVariables.UserID] = value; }
}
// .... and so on
}
您可以像这样使用它们:
protected void Page_Load(object sender, EventArgs e)
{
Response.Write(Account.UserID);
}
使用而不是一直使用Session [Sessionvariables.UserID]要短得多。
我的2美分
答案 4 :(得分:0)
您可以创建一个“快捷类”,如:
public class SesVar
{
public Common.SessionVariables IsLogout
{
get
{
return Common.SessionVariables.IsLogout;
}
}
}
然后你做Session[SesVar.IsLogout]
。
但我个人不会这样做,因为它不利于您的代码的可读性,而IntelliSense无论如何都会为您打字。
答案 5 :(得分:0)
您可以使用以下属性创建基类:
class PageWithProperties
{
public bool IsLogout { get{ return (bool)Session["IsLogout"] }
set { Session["IsLogout"] = value; } }
}
class PageClass : PageWithProperties
{
void PageClassMethod()
{
if(IsLogout)
{
}
}
}