我有一个带有如下签名的网络方法:
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/