セッションにasp.net htmlテーブルを保存し、その作業ファイルをInProcセッション状態にします。
stateserver を使用している間、セッションからテーブル オブジェクトを取得するシリアライゼーションに問題があります。
私はそれを成し遂げることができないベロコードで試しました...
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;
}
も参照して ください