zoukankan      html  css  js  c++  java
  • 解决序列化类型为“System.Reflection.RuntimeModule”的对象时检测到循环引用。

    定义一个继承JavaScriptConverter的子类

    public class DataTableConverter : JavaScriptConverter
        {
            /// <summary>序列化</summary>
            public override IDictionary<string, object> Serialize(object obj, JavaScriptSerializer serializer)
            {
                DataTable dt = obj as DataTable;
                Dictionary<string, object> result = new Dictionary<string, object>();
    
                List<Dictionary<string, object>> rows = new List<Dictionary<string, object>>();
    
                foreach (DataRow dr in dt.Rows)
                {
                    Dictionary<string, object> row = new Dictionary<string, object>();
                    foreach (DataColumn dc in dt.Columns)
                    {
                        row.Add(dc.ColumnName, dr[dc.ColumnName]);
                    }
                    rows.Add(row);
                }
    
                result["Rows"] = rows;
    
                return result;
            }
    
            /// <summary>反序列化</summary>
            public override object Deserialize(IDictionary<string, object> dictionary, Type type, JavaScriptSerializer serializer)
            {
                throw new NotImplementedException();
            }
    
            /// <summary>
            /// 获取本转换器支持的类型
            /// </summary>
            public override IEnumerable<Type> SupportedTypes
            {
                get { return new Type[] { typeof(DataTable) }; }
            }
        }

    序列化之前先将对象进行注册

    JavaScriptSerializer resultjson = new JavaScriptSerializer();
    
    resultjson.RegisterConverters(new JavaScriptConverter[] { new DataTableConverter() });
    
    string data = resultjson.Serialize( this );
  • 相关阅读:
    UML建模之用例图关系
    python模块介绍
    Delphi操作XML(七)
    Delphi操作XML(一)
    Delphi操作XML(五)
    Delphi操作XML(六)
    Delphi操作XML(二)
    Delphi操作XML(四)
    Delphi操作XML(三)
    决心好好写cnblogs
  • 原文地址:https://www.cnblogs.com/jiyang2008/p/7357634.html
Copyright © 2011-2022 走看看