当前位置:  开发笔记 > 编程语言 > 正文

序列化System.Globalization.CultureInfo类型的对象时检测到循环引用

如何解决《序列化System.Globalization.CultureInfo类型的对象时检测到循环引用》经验,为你挑选了1个好方法。

我正在使用jquery来调用webservice,它返回一个包含几个表的数据集.

这工作正常,直到我需要设置我的webmethod接受参数.我在客户端反映了这一点

data: "{paramname:'" + paramval+ "'}",

我现在在webmethod返回时收到以下错误.无论数据集中返回什么,都会发生这种情况

错误:{"消息":"在序列化类型为\ u0027System.Globalization.CultureInfo\u0027的对象时检测到循环引用.","StackTrace":"在System.Web.Script.Serialization.JavaScriptSerializer.SerializeValueInternal(Object o ,StringBuilder sb,Int32 depth,Hashtable objectsInUse,SerializationFormat serializationFormat)\ r \n at ... etc

当webmethod没有参数时,客户端js看起来与下面相同,除了data:line被删除.

function ClientWebService(paramval){
$.ajax({
    type: "POST",
    url: "WebService1.asmx/webmethodName", 
    data: "{paramname:'" + paramval+ "'}",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function(msg) {
        ParseResult(msg.d);
    },
    error: function(err) {
        if (err.status == 200) {
              ParseResult(err);
        }
        else { alert('Error:' + err.responseText + '  Status: ' + err.status); }
    }
}); 

}

编辑:根据建议将请求更改为

data: {paramname: paramval},

产生以下错误.

错误:{"消息":"无效的JSON原语:paramval.","StackTrace":"
在System.Web.Script.Serialization.JavaScriptObjectDeserializer中的System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializePrimitiveObject()\ r \n".在System.Web.Script.Serialization.JavaScriptSerializer.Deserialize(JavaScriptSerializer序列化程序)的System.Web.Script.Serialization.JavaScriptObjectDeserializer.BasicDeserialize(String输入,Int32 depthLimit,JavaScriptSerializer序列化程序)\ r \n的DeserializeInternal(Int32深度)\ r \n System.Web.Script.Script.Services.RestHandler.GetRawParamsFromPostRequest(System.Web.Script.Serialization.JavaScriptSerializer.Deserialize [T](字符串输入)\ r \n中的,字符串输入,类型类型,Int32 depthLimit)\ r \n HttpContext上下文,JavaScriptSerializer序列化程序)\ r \n在System.Web.Script.Script.Services.RestHandler.GetRawParams(WebServiceMethodData methodData,HttpContext context)\ r \n在System.Web.Script.Services.RestHandler.ExecuteWebServiceCall(HttpContext context,WebServiceMethodData)methodData)","ExceptionType":"System.ArgumentException"}状态:500

user48408.. 5

我改变了我的webmethod返回

ds.GetXml();

这很有效.考虑到数据集是可序列化的,我不知道为什么我必须这样做,但它让我克服了这个障碍.



1> user48408..:

我改变了我的webmethod返回

ds.GetXml();

这很有效.考虑到数据集是可序列化的,我不知道为什么我必须这样做,但它让我克服了这个障碍.

推荐阅读
mobiledu2402852357
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有