C# 如何从类文件设置会话值
我使用下面的代码从类文件中分配一个会话变量。但我收到了错误消息“对象引用未设置为对象的实例”C# 如何从类文件设置会话值,c#,asp.net,C#,Asp.net,我使用下面的代码从类文件中分配一个会话变量。但我收到了错误消息“对象引用未设置为对象的实例” 实现目标的正确方法是(使用在线工具翻译成c#注意检查()或[]): 在示例中,还有许多其他方法可以实现相同的目标:使用属性和方法的SameClass: protected void Load() { MyObject _class = new MyObject; _class.surname="Surname"; _class.name="Name"; conte
实现目标的正确方法是(使用在线工具翻译成c#注意检查()或[]): 在示例中,还有许多其他方法可以实现相同的目标:使用属性和方法的SameClass:
protected void Load()
{
MyObject _class = new MyObject;
_class.surname="Surname";
_class.name="Name";
context.Session.add("UserInfo"),_class.name + "-" + _class.surname);
}
所有这些都取决于您的类、方法、属性和逻辑。我认为在类中访问
上下文不是一个好的做法。相反,您应该从类中返回所需的值,并让网页代码将其添加到会话中。关于您的问题:这个类是如何实例化和访问的?您的类在哪里?你没有得到编译时错误吗?我想从类文件分配。可能会重新阐述这个问题…我不确定我是否理解…从类文件分配是什么意思。你有一个自定义类,需要在其中管理会话吗?
if ((Session("UserSession") == null))
{
//example with simple string
Session.Add("UserSession", "thisIsASimpletString");
//Exmple with an Object NOTE: the constructor new if is required or you may handling in exception like your
List<string> list = new List<string>();
Session.Add("UserSession", list);
}
else
{
//different case where session exist
Session("UserSession") = "thisIsASimpletString";
//case with object
List<string> list = new List<string>();
Session("UserSession") = list;
}
protected void Page_Load(object sender, EventArgs e)
{
MyObject _class = new MyObject(HttpContext.Current);
_class.SetNameAndSurname();
Response.Write(Session("UserInfo").ToString);
}
private class MyObject
{
public void SetNameAndSurname()
{
if ((this.Context.Session("UserInfo") == null)) {
this.Context.Session.Add("UserInfo", this.Surname + "-" + this.Name);
} else {
this.Context.Session("UserInfo") = this.Surname + "-" + this.Name;
}
}
private string _Name;
public string Name
{
get { return _Name; }
set { _Name = value; }
}
private string _Surname;
public string Surname
{
get { return _Surname; }
set { _Surname = value; }
}
private HttpContext _context;
public HttpContext Context
{
get { return _context; }
set { _context = value; }
}
public MyObject(HttpContext Context)
{
this._context = Context;
}
public MyObject()
{
}
}
protected void Load()
{
MyObject _class = new MyObject;
_class.surname="Surname";
_class.name="Name";
context.Session.add("UserInfo"),_class.name + "-" + _class.surname);
}