Web Service返回对象生成错误消息

时间:2014-11-06 09:25:17

标签: c# asp.net json web-services

我关注this tutorial。我的代码可以在这里找到:https://github.com/mudzakkir/testwebservice.git

TestConsume.aspx.cs,此代码:

var ObjSumClass = new SumClass { First = Num1, Second = Num2 };
var ObjSerializer = new JavaScriptSerializer();
var JsonStr = ObjSerializer.Serialize(ObjSumClass);

divSumThroughJson.InnerHtml = ServiceReferenceMyService.GetSumThroughObject1(JsonStr).Sum.ToString();  

给出以下错误:

  

错误1' FirstWebService.ServiceReferenceMyService.GetSumThroughObject1'是'类型',在给定的上下文中无效C:\ TohaDoc \ Sinau \ WebService \ FirstWebService \ FirstWebService \ TestConsume.aspx.cs 32 43 FirstWebService

打开文件MyService.asmx.cs,GetSumThroughObject返回对象。我们如何通过JSON访问Web服务?

2 个答案:

答案 0 :(得分:1)

在那篇文章中,他使用" ObjMyServiceProxy"对象,但我没有找到这个对象创建的位置。

然后我检查了web服务参考172行,方法名称应为" SumOfNums1"

public FirstWebService.ServiceReferenceMyService.SumClass SumOfNums1(string JsonStr) {
        FirstWebService.ServiceReferenceMyService.GetSumThroughObject inValue = new FirstWebService.ServiceReferenceMyService.GetSumThroughObject();
        inValue.JsonStr = JsonStr;
        FirstWebService.ServiceReferenceMyService.GetSumThroughObject1 retVal = ((FirstWebService.ServiceReferenceMyService.MyServiceSoap)(this)).SumOfNums1(inValue);
        return retVal.GetSumThroughObjectResult;
    }

所以你需要像这样的调用方法

divSumThroughJson.InnerHtml = ObjMyService.SumOfNums1(JsonStr).Sum.ToString();  

答案 1 :(得分:0)

我更改了此部分的代码:

divSumThroughJson.InnerHtml =ObjMyServiceProxy.GetSumThroughObject(JsonStr).Sum.ToString();   

喜欢这个:

divSumThroughJson.InnerHtml = new ServiceReferenceMyService.MyServiceSoapClient().SumOfNums1(JsonStr).Sum.ToString();  

现在它正在运作.. 那样的方式还可以吗?