加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 在序列化System.Globalization.CultureInfo类型的对象时检

发布时间:2020-12-15 07:44:56 所属栏目:百科 来源:网络整理
导读:我正在使用 jquery来调用webservice,它返回一个包含几个表的数据集. 这工作正常,直到我需要设置我的webmethod接受参数.我在客户端反映了这一点 data: "{paramname:'" + paramval+ "'}", 我现在在webmethod返回时收到以下错误.无论数据集中返回什么,都会发生
我正在使用 jquery来调用webservice,它返回一个包含几个表的数据集.

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

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

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

Error:{“Message”:”A circular reference was detected while serializing
an object of type
u0027System.Globalization.CultureInfou0027.”,”StackTrace”:” at
System.Web.Script.Serialization.JavaScriptSerializer.SerializeValueInternal(Object
o,StringBuilder sb,Int32 depth,Hashtable objectsInUse,
SerializationFormat serializationFormat)rn 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},

产生以下错误.

Error:{“Message”:”Invalid JSON primitive: paramval.”,”StackTrace”:”
at
System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializePrimitiveObject()rn
at
System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeInternal(Int32
depth)rn at
System.Web.Script.Serialization.JavaScriptObjectDeserializer.BasicDeserialize(String
input,Int32 depthLimit,JavaScriptSerializer serializer)rn at
System.Web.Script.Serialization.JavaScriptSerializer.Deserialize(JavaScriptSerializer
serializer,String input,Type type,Int32 depthLimit)rn at
System.Web.Script.Serialization.JavaScriptSerializer.Deserialize[T](String
input)rn at
System.Web.Script.Services.RestHandler.GetRawParamsFromPostRequest(HttpContext
context,JavaScriptSerializer serializer)rn at
System.Web.Script.Services.RestHandler.GetRawParams(WebServiceMethodData
methodData,HttpContext context)rn at
System.Web.Script.Services.RestHandler.ExecuteWebServiceCall(HttpContext
context,WebServiceMethodData
methodData)”,”ExceptionType”:”System.ArgumentException”} Status: 500

解决方法

我改变了我的webmethod返回
ds.GetXml();

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读