Skip to main content
 首页 » 编程设计

c#之在 .NET Web 服务上使用/生成 ArrayOfInt 的 int[] insted 方法签名

2024年01月11日43myhome

我有一个 ASP.NET Web 服务 (.asmx),其方法接收 int 数组 (int[]) 和可为空的 int 数组 (int?[]) 作为参数。我还有一个测试 Web 应用程序,用于通过服务引用使用此 Web 服务。

问题是每次我更改 Web 服务代码中的某些内容、重新编译它并更新测试应用程序中的服务引用时,都会为测试应用程序中的 Web 服务方法生成不同类型的参数。例如:

在第一次构建和服务更新时,Visual Studio 在测试应用程序中生成的方法签名是:

void MyMethod(int[] firstParam, int?[] secondParam)。

然后我做了一些改变,再做一次,得到类似的东西:

void MyMethod(ArrayOfInt fistParam, ArrayOfInt1 secondParam)

(ArrayOfInt 等同于 int[],ArrayOfInt1 等同于 int?[]).

再一次,我得到:

void MyMethod(ArrayOfInt1 firstParam, ArrayOfInt secondParam),

交换了 ArrayOfInt 和 ArrayOfInt1(ArrayOfInt1 现在等同于 int[] 和 ArrayOfInt 等同于 int?[])。



我真正想要的是使用简单的 int[] 和 int?[] 类型(无论我重新编译和更新服务引用多少次!)。我怎样才能做到这一点?

请您参考如下方法:

尝试使用 wsdl.exe代替使用 Visual Studio 生成 Web 服务代理的工具。

这对我有用!