日期:2014-05-17  浏览次数:20710 次

win8应用调用web service的enValidateImage,在线等,立马结分。
web service地址:http://webservice.webxml.com.cn/WebServices/ValidateCodeWebService.asmx
enValidateImage 

直接获得验证码图片(为英文/数字优化)

输入参数:字符串,英文字母、符号或数字,最多支持8个字符,如需要支持更多字符请联系我们,默认随机输出4个字符图片; 返回数据:验证码图片。

在C#里调用时发现他是没有返回值的!
只能这样写:
await enValidateImageAsync(string bystring);
请问怎样把他的返回图片打印到XAML中呢?

------解决方案--------------------
有返回值啊,返回base64Binary,是一个base64编码的字符串。
------解决方案--------------------
有返回值,你要自己解码
------解决方案--------------------
搞懂什么是 XXXAsync(...)。所有异步方法的返回值都是void。

请了解一下异步操作,都是在事件等回调中进行后续处理,而不是从这个方法的什么“返回值”来处理。这是基本的模式。
------解决方案--------------------
不要写什么 await。基本上这类代码都是很扯的,名义上让你“用顺序编程的思维去写异步程序”,实际上就是让你再走邯郸学步的路数。

正常的程序,这里写
enValidateImageAsync(string bystring);
就完了,根本没有什么await。这条语句(从你的流程设计意识上就)必须是方法的最后一条语句,你的这个方法到此就结束。只有用正常的思维来设计程序,而不要滥用扯淡的await,你才能熟练编写和调试(特别是调试)大量异步程序。

一句话:尽量避免使用await!