c# - 我可以停止服务引用生成 ArrayOfString 而不是 string[] 吗?

标签 c# web-services asmx proxy-classes

我有一个带有如下签名的网络方法:

public string[] ToUpper(string[] values)

我在 Visual Studio 2010 中使用“添加服务引用”来生成对我的服务的引用。不幸的是,这个过程创建了一个名为“ArrayOfString”的代理类,并使用了这个类型而不是预期的“string[]”类型。生成的异步服务调用签名最终如下所示:

public void ToUpperAsync(Demo.ServiceReference.ArrayOfString values) { }
public void ToUpperAsync(Demo.ServiceReference.ArrayOfString values, object userState) { }

我已经尝试了配置服务引用表中“集合”下拉菜单的所有选项,但似乎没有什么不同。

这以前是有效的,但由于某种原因它突然停止工作,可能是在从服务中删除了另一个网络方法之后。

如何让生成的服务引用类使用 string[] 类型而不是生成的 ArrayOfString 类型?对此的任何帮助将不胜感激。

编辑: 正如@Oleg 所建议的,我正在使用 ASMX Web 服务。

最佳答案

可以在 Reference.svcmap 文件中完成对 XmlSerializer 的更改。在 Service Reference 文件夹中打开它,并将 Serializer xml 节点从“Auto”更改为“XmlSerializer”,这解决了问题! 干杯

关于c# - 我可以停止服务引用生成 ArrayOfString 而不是 string[] 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4929735/

相关文章:

java - 在play框架中调用webservice时出现NullPointer异常

visual-studio-2010 - SQL Server 未找到序列化程序集

c# - 导致WCF代理出错的情况有哪些?

c# - 将 NuGet 包替换为本地 dll 文件

c# - 如何正确使用 ToggleButton.IsChecked 或 IsPressed 上的触发器?

c# - 不允许来自静态类型的数据

asp.net - 如何以编程方式构建带有表单和用户控件的 System.Web.UI.Page?

c# - IdentityServer3 - 登录时 PreAuthenticateAsync

c# - 通过.net使用java web服务-数据不一致

c# - 从 jQuery 调用 ASMX