Web服务返回对象生成错误消息
我正在关注this tutorial。我的代码可以在这里找到:https://github.com/mudzakkir/testwebservice.gitWeb服务返回对象生成错误消息
在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();
给出以下错误:
Error 1 'FirstWebService.ServiceReferenceMyService.GetSumThroughObject1' is a 'type', which is not valid in the given context C:\TohaDoc\Sinau\WebService\FirstWebService\FirstWebService\TestConsume.aspx.cs 32 43 FirstWebService
打开文件MyService.asmx.cs,GetSumThroughObject返回对象。我们如何通过JSON访问Web服务?
在那篇文章中,他使用“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();
ObjMyService也许是引用的名称..和SumOfNums1方法是不可用在该命名空间..我正在使用MS Visual Studio 2010和.Net 4 ..该文章是使用3.5是这样的问题? – Khaneddy2013 2014-11-06 10:31:39
我更改代码在这个部分:
divSumThroughJson.InnerHtml =ObjMyServiceProxy.GetSumThroughObject(JsonStr).Sum.ToString();
要这样:
divSumThroughJson.InnerHtml = new ServiceReferenceMyService.MyServiceSoapClient().SumOfNums1(JsonStr).Sum.ToString();
现在它正在工作.. 这样可以吗?
ASMX页面是传统技术,不应用于新开发。如果您想在.NET中开发Web服务,请查看WCF或WebAPI。 – Tim 2014-11-06 09:33:28
感谢您的信息。你可以给我参考,也许书吗?或文章从哪里开始学习WCF和WebAPI?谢谢 – Khaneddy2013 2014-11-06 10:42:29