2014-11-06 50 views
0

我正在關注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服務?

+0

ASMX頁面是傳統技術,不應用於新開發。如果您想在.NET中開發Web服務,請查看WCF或WebAPI。 – Tim 2014-11-06 09:33:28

+0

感謝您的信息。你可以給我參考,也許書嗎?或文章從哪裏開始學習WCF和WebAPI?謝謝 – Khaneddy2013 2014-11-06 10:42:29

回答

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(); 
+0

ObjMyService也許是引用的名稱..和SumOfNums1方法是不可用在該命名空間..我正在使用MS Visual Studio 2010和.Net 4 ..該文章是使用3.5是這樣的問題? – Khaneddy2013 2014-11-06 10:31:39

0

我更改代碼在這個部分:

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

要這樣:

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

現在它正在工作.. 這樣可以嗎?

相關問題