ASP.NET:是否可以保留复杂对象,如列表<&燃气轮机;会议结束了吗?

ASP.NET:是否可以保留复杂对象,如列表<&燃气轮机;会议结束了吗?,asp.net,session-state,Asp.net,Session State,ASP.NET:是否可以保留复杂的对象,例如列表是会话?若有,如何处理?我试图在会话中保留一个列表,但有人告诉我无法将该列表转换为字符串 编辑 [可序列化] 公共类客户端 { 公共字符串ClientType{get;set;} 公共字符串ClientName{get;set;} 公共字符串子客户端名称{get;set;} 公共字符串项目{get;set;} 公共字符串服务{get;set;} 公共字符串活动{get;set;} } 客户名单; 受保护的无效页面加载(对象发送方、事件参数e) {

ASP.NET:是否可以保留复杂的对象,例如
列表
是会话?若有,如何处理?我试图在会话中保留一个列表,但有人告诉我无法将该列表转换为字符串

编辑
[可序列化]
公共类客户端
{
公共字符串ClientType{get;set;}
公共字符串ClientName{get;set;}
公共字符串子客户端名称{get;set;}
公共字符串项目{get;set;}
公共字符串服务{get;set;}
公共字符串活动{get;set;}
}
客户名单;
受保护的无效页面加载(对象发送方、事件参数e)
{
如果(!IsPostBack)
{
ListofClient=新列表{new Client()};
会话[“ListofClient”]=ListofClient;//这就是发生错误的地方
//无法将列表转换为字符串。。。
}  
}
有许多操作要执行,但其思想是在会话中保留客户机列表中的任何内容

谢谢您的帮助。

是的,您可以将任何内容存储到会话变量中。例如:

List<string> list;

Session["list"] = list;
列表;
会话[“列表”]=列表;
然后返回值:

List<string> list = (List<string>)Session["list"];
List List=(List)会话[“List”];

只要处于
InProc
模式,就可以在会话对象中存储任何内容

否则,您存储的内容必须是可序列化的

请注意,您存储的对象类型是
对象
,因此您可以转换返回的引用:

ListOfClients = Session["ListOfClients"] as List<Client>;
ListOfClients=Session[“ListOfClients”]作为列表;

由于您在注释中写道错误发生在编译时而不是运行时,我怀疑您还有另一个名为
Session
的对象,它屏蔽了
页面.Session

尝试将鼠标悬停在Visual Studio中的会话文本上。工具提示应显示会话的类型

System.Web.SessionState.HttpSessionState

如果它显示的是其他内容,则需要搜索标记(.aspx文件)和代码隐藏文件,查看是否已使用名称/id
Session
声明了其他内容,然后更改该名称/id。

我非常确定任何可序列化的内容都可以存储在会话中。您介意发布您的代码吗?我能想到的唯一一件事是客户端没有实现
ISerializable
,因此由于某种原因无法序列化。正在尝试将
[Serializable]
属性添加到您的类中。我已经添加了[Serializable],但仍然会出现相同的错误,请查看我正在使用的代码发布完整的
客户端实现,以防其中有我们看不到的内容。显示此页面的页面指令。它位于aspx文件的第一行
System.Web.SessionState.HttpSessionState