stateserver htmltable会话序列化问题

时间:2013-05-30 06:45:14

标签: 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)
    {
       //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;
    }

see 感谢

0 个答案:

没有答案