0

我已经使用 Visual Studio 2010 创建了一个 Web 服务,该 Web 服务接收 2 个整数和秒表,其中一个参数还包括和 out 语句,如下例所示:

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

我在 Visual Studio 中创建了一个 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 应用程序。

4

2 回答 2

2

您正在处理两个名为Stopwatch. 一个在System.Diagnostics命名空间中,另一个在Application1.webclient.Serv1命名空间中。确保所有Stopwatch实例都是相同类型的Stopwatch.

于 2013-01-23T15:56:24.627 回答
0

简短的回答:你不能那样做。

长答案:

在 VS 项目中引用 Web 服务会为 Web 服务声明的任何类创建代理类。

这意味着如果您在 WS 参数中公开类 System.Diagnostics.Stopwatch,客户端引用将为 Stopwatch 创建一个本地代理类,在您的情况下为 Application1.webclient.Serv1.Stopwatch。

因此,您不能在服务器端声明 Stopwatch 类的客户端传递 System.Diagnostics.Stopwatch。

如果这个代理类不仅仅包含公共数据成员,我会感到惊讶。

于 2013-01-23T16:02:48.137 回答