错误:方法deserialize有1个参数但是使用2个参数调用

时间:2014-10-23 07:24:00

标签: c# asp.net

我的代码就像这样

    using System;
using System.IO;
using System.Web;
using System.Web.Script.Serialization;

public class SaveData : IHttpHandler
{
    public bool IsReusable
    {
        get { return true; }
    }

    public void ProcessRequest(HttpContext context)
    {
        string jsonString = String.Empty;

        context.Request.InputStream.Position = 0;
        using (var inputStream = new StreamReader(context.Request.InputStream))
        {
            jsonString = inputStream.ReadToEnd();
        }

        var javaScriptSerializer = new JavaScriptSerializer();
        object serJsonDetails = javaScriptSerializer.Deserialize(jsonString, typeof (object));

        // You can now add logic to work with serJsonDetails object
    }
}

一切看起来都没问题,我不知道为什么会抛出这个错误

Error: method deserialize has 1 parameter but invoked with 2 arguments 

enter image description here

2 个答案:

答案 0 :(得分:1)

消息非常清楚:Deserialize方法只有一个参数(http://msdn.microsoft.com/fr-fr/library/bb355316(v=vs.110).aspx)。但是,您使用两个参数调用该方法。

如果要解决此错误,请更改:

object serJsonDetails = javaScriptSerializer.Deserialize(jsonString, typeof (object));

到:

object serJsonDetails = javaScriptSerializer.Deserialize(jsonString);

编辑:您使用的是哪个版本的.NET Framework? (带有2个参数的方法出现在.NET Framework 4 http://msdn.microsoft.com/fr-fr/library/ee191864(v=vs.110).aspx)中。

答案 1 :(得分:0)

尝试:

   object serJsonDetails = javaScriptSerializer.Deserialize(jsonString);