C# stateserver htmltable会话序列化问题
我们将asp.net html表存储在会话中,它的工作文件具有InProc会话状态 当我们使用stateserver时,从会话中获取表对象的序列化存在问题 我已经尝试了belo代码无法完成它C# stateserver htmltable会话序列化问题,c#,asp.net,session,stateserver,C#,Asp.net,Session,Stateserver,我们将asp.net html表存储在会话中,它的工作文件具有InProc会话状态 当我们使用stateserver时,从会话中获取表对象的序列化存在问题 我已经尝试了belo代码无法完成它 Table table = null; Session["table"] = tableToJson(table); table = jsonToTable(Session["table"]); private string tableToJson(Table obj)
Table table = null;
Session["table"] = tableToJson(table);
table = jsonToTable(Session["table"]);
private string tableToJson(Table obj)
{
//Formatting.Indented, new JsonSerializerSettings() {ReferenceLoopHandling = ReferenceLoopHandling.Serialize}
// return JsonConvert.SerializeObject(obj,Formatting.Indented, new JsonSerializerSettings() {ReferenceLoopHandling = ReferenceLoopHandling.Serialize});
//return JsonConvert.SerializeObject(obj);
// return JsonConvert.SerializeObject(obj, Newtonsoft.Json.Formatting.Indented, new JsonSerializerSettings() { PreserveReferencesHandling = PreserveReferencesHandling.All });
StringBuilder sb = new StringBuilder();
HtmlTextWriter tw = new HtmlTextWriter(new StringWriter(sb));
obj.RenderControl(tw);
return tw.InnerWriter.ToString();
}
private Table jsonToTable(object obj)
{
string serializedData = (string)obj;
serializedData = serializedData.Replace("<table", "<table runat=\"server\"");
Control tbl = Page.ParseControl(serializedData);
return tbl as Table;
//var serializer = new XmlSerializer(typeof(Table));
//var reader = new XmlTextReader(new StringReader(serializedData));
//return (Table)serializer.Deserialize(reader);
//string o = (string)obj;
//Table tbl = (Table)Newtonsoft.Json.JsonConvert.DeserializeObject(o, typeof(Table));
//return tbl;
}
Table Table=null;
会话[“table”]=tableToJson(table);
table=JSONTOBLE(会话[“table]”);
私有字符串tableToJson(表obj)
{
//Formatting.Indented,新JsonSerializerSettings(){ReferenceLoopHandling=ReferenceLoopHandling.Serialize}
//返回JsonConvert.SerializeObject(obj,Formatting.Indented,new JsonSerializerSettings(){ReferenceLoopHandling=ReferenceLoopHandling.Serialize});
//返回JsonConvert.SerializeObject(obj);
//返回JsonConvert.SerializeObject(obj,Newtonsoft.Json.Formatting.Indented,new JsonSerializerSettings(){PreserveReferencesHandling=PreserveReferencesHandling.All});
StringBuilder sb=新的StringBuilder();
HtmlTextWriter tw=新的HtmlTextWriter(新的StringWriter(sb));
目标渲染控制(tw);
返回tw.InnerWriter.ToString();
}
私有表JSONTOBLE(对象obj)
{
字符串序列化数据=(字符串)对象;
serializedData=serializedData.Replace(“您的代码没有提到Session
现在,我已经将其添加到代码顶部,感谢您的回复。”。。