Bri*_*per 5 c# asp.net session
我在C#ASP.Net程序中有一个在回发期间填充的对象数组,我希望在下一个回发期间恢复它们.为此,我在Default类定义中包含了数组声明,因此保存了: -
this.Session["This"] = this;
Run Code Online (Sandbox Code Playgroud)
并恢复: -
Default saved_stuff = (Default) this.Session["This"];
Run Code Online (Sandbox Code Playgroud)
这适用于除以下之外的所有内容: -
MyClass [] my_array;
Run Code Online (Sandbox Code Playgroud)
恢复时,saved_stuff.my_array总是如此null.
MyClass定义如下: -
public MyClass : ISerializable
{
private string some_string;
private double some_double;
// some more simple members
// Some getters and setters
// ISerializable Implementation
}
Run Code Online (Sandbox Code Playgroud)
我尝试过制作MyClass工具,ISerializable但这没有任何区别.有谁知道我应该做什么?
编辑回答@ Michael的问题,我正在做的事情......
for (int i = 0; i <= saved_stuff.my_array.GetUpperBound(0); i++)
{
// blah blah
}
Run Code Online (Sandbox Code Playgroud)
失败的"对象引用未设置为对象的实例".在调试时,所有其他成员变量Default都可见saved_stuff.
您必须将数组数据存储在自己的会话对象中:
MyClass[] my_array = //Something
Session["ArrayData"] = my_array;
Run Code Online (Sandbox Code Playgroud)
然后将其检索为:
var arrayData = (MyClass[])Session["ArrayData"];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8297 次 |
| 最近记录: |