2013-01-23 47 views
-1

我已創建一個Web服務使用Visual Studio 2010中,Web服務接收2個整數和stopwach,參數之一還包括進出聲明一樣展現在NEX例如:秒錶不工作

public double[][] Parameters(int N_ele, int N_carac, Stopwatch inic, out Stopwatch ini_final) 

wen我在Visual Studio中創建一個Web應用程序,必須創建一個Web引用才能調用Web服務。當我打電話的web服務,我用了下面的代碼:

webclient.Serv1 service = new webclient.Serv1(); 
int element, caracteristic; 
System.Diagnostics.Stopwatch time_sent = new System.Diagnostics.Stopwatch(); 
System.Diagnostics.Stopwatch time_respond = new System.Diagnostics.Stopwatch(); 
servicie.Parameters(ele, caract,time_sent, out time_respond); 

它說怎麼過的Visual Studio標記和錯誤:無法轉換System.Diagnostics.Stopwatch到Application1.webclient.Serv1.Stopwatch

,也out語句中的相同錯誤,如果有些可以幫助我找出錯誤的原因以及如何解決它。我也使用C#,Visual Studio,.NET框架4和3,使用兩個不同的Web應用程序。

+3

在這個命名空間中似乎有另一個名爲'StopWatch'的類:'Application1.webclient.Serv1'。 –

回答

2

您正在處理兩個名爲Stopwatch的類。一個在System.Diagnostics名稱空間中,另一個在Application1.webclient.Serv1名稱空間中。確保所有Stopwatch實例的Stopwatch類型相同。

+0

我改變Web服務recive:public double [] []參數(int N_ele,int N_carac,System.Diagnostics.Stopwatch inic,out System.Diagnostics.Stopwatch ini_final),我仍然有相同的錯誤 – JUAN

+0

@JUAN那是因爲該方法不使用'System.Diagnostics'版本,它使用另一個。您需要創建* that *類型的實例並將其傳入。 – Servy

+0

您是對的我已更改此行:webclient.Stopwacht time_sent = new webclient.Stopwacht(); webclient.Stopwacht time_respond = new webclient.Stopwacht();使用System.Diagnostics.Stopwatch time_sent = new System.Diagnostics.Stopwatch(); System.Diagnostics.Stopwatch time_respond = new System.Diagnostics.Stopwatch(); – JUAN

0

簡答:你不能那樣做。

龍答:

在VS項目引用一個Web服務通過Web服務聲明的任何類創建代理類。

這意味着如果您在WS參數中公開類System.Diagnostics.Stopwatch,則客戶端引用將爲Stopwatch創建本地代理類,在您的情況下爲Application1.webclient.Serv1.Stopwatch。

因此,無法在服務器端聲明Stopwatch類的客戶端傳遞System.Diagnostics.Stopwatch。

如果這個代理類不僅包含公共數據成員,我會感到驚訝。

+0

我已經嘗試使用記事本白色擴展名.asmx和.aspx這個相同的程序,並永遠不會收回秒錶的錯誤,我做的唯一的事情就是將程序移動到Visual Studio – JUAN