C# MVC中的会话使用
我有一个助手课程C# MVC中的会话使用,c#,asp.net-mvc,asp.net-mvc-4,session,C#,Asp.net Mvc,Asp.net Mvc 4,Session,我有一个助手课程 namespace ShopCart.BAL { public static class SessionHelper { public static ShopUser myShopUser { get { return HttpContext.Current.Session["myShopUser"] as ShopUser;
namespace ShopCart.BAL
{
public static class SessionHelper
{
public static ShopUser myShopUser
{
get
{
return HttpContext.Current.Session["myShopUser"] as ShopUser;
}
set
{
HttpContext.Current.Session["myShopUser"] = value;
}
}
}
}
进一步的ShopUser类看起来像
public class ShopUser
{
public string LoginID { get; set; }
public string SessionID { get; set; }
public long UserId { get; set; }
public long ShoppingCartId { get; set; }
public bool? Status { get; set; }
}
现在我想知道如何为特定属性设置会话?
SessionHelper.Status=false//它在SessionHelper中创建一个新属性
如何使用上述类创建会话
@莫森:你的回答是正确的。
此外
public ActionResult Index() {
ShopLogin objShopLogin = new ShopLogin ();
objShopLogin .checkUser();
}
public class ShopLogin {
public string checkUser()
{
SessionHelper.myShopUser.Status = false;
}
}
如您所见,我在这里创建类对象,如ShopLogin objShopLogin=newshopLogin();
您能告诉我,我可以在这里使用依赖项注入来避免创建这样的类对象吗?使用
SessionHelper.myShopUser.Status = false
编辑
对。只需将static
修饰符添加到CheckUser
方法
public ActionResult Index() {
ShopLogin.checkUser();
}
public class ShopLogin {
public static string checkUser()
{
SessionHelper.myShopUser.Status = false;
}
}
谢谢@mohsen,这很有效。您能告诉我如何添加依赖项注入(nInject),这样我就不需要创建“新”对象了。ShopUser objShopUser=新ShopUser();public string checkUser(){SessionHelper.myShopUser.Status=false;}public ActionResult Index(){ShopUser objShopUser=new ShopUser();objShopUser.checkUser();}然后公共类登录{public string checkUser(){SessionHelper.myShopUser.Status=false;}我想避免创建类似'ShopUser objShopUser=new ShopUser()'的类对象。我可以在这里使用依赖项注入(nInject)来避免创建新对象并实现相同的功能吗?你的意思是什么?请将有问题的代码插入到commentsif中(SessionHelper.myShopUser.Status==null)抛出nullreference exceptioncheckUser()在不同的类中,它在“Login”中,因此SessionHelper.myShopUser.checkUser()是;不会工作SessionHelper.myShopUser.Status=false;如果它在另一个类中,也会抛出nullreference异常in
Index
method?我编辑了这个问题,我错了,是之前的问题,现在是objShopLogin.checkUser();其中,objShopLogin是登录的对象