Luk*_*lch 8 c# web-services proxy-classes asmx
我有一个带有这样签名的web方法:
public string[] ToUpper(string[] values)
Run Code Online (Sandbox Code Playgroud)
我在Visual Studio 2010中使用"添加服务引用"来生成对我的服务的引用.不幸的是,这个过程创建了一个名为'ArrayOfString'的代理类,并使用这种类型而不是预期的'string []'类型.生成的异步服务调用签名最终看起来像这样:
public void ToUpperAsync(Demo.ServiceReference.ArrayOfString values) { }
public void ToUpperAsync(Demo.ServiceReference.ArrayOfString values, object userState) { }
Run Code Online (Sandbox Code Playgroud)
我已经尝试了配置服务参考表单中"收集"下拉列表的所有选项,但它似乎并没有什么区别.
这在以前工作,但由于某种原因它可能突然停止工作,可能是从服务中删除另一个Web方法.
如何让生成的服务引用类使用string []类型而不是生成的ArrayOfString类型?任何有关这方面的帮助将不胜感激.
编辑: 正如@Oleg建议的那样,我正在使用ASMX Web服务.
小智 14
这个对XmlSerializer的更改可以在Reference.svcmap文件中完成.在Service Reference文件夹中打开它并将Serializer xml节点从"Auto"更改为"XmlSerializer",这解决了问题!干杯
小智 5
在向ASMX样式的Web服务添加"服务引用"时,我可以重现您的问题.但是,当向WCF服务添加"服务引用"或向ASMX服务参数添加"Web引用"时,类型为string [].
根据这一点,我认为您可以通过"Web引用"替换"服务引用"来解决您的问题.
按"添加服务引用对话框"上的"高级..."按钮.
按"添加网络参考..."
插入服务网址并添加网络参考
归档时间: |
|
查看次数: |
5062 次 |
最近记录: |