要使用我添加了一个Web服务引用,然后web服务下面的代码添加到我的MainPage.xaml.cs中的文件。Web服务未处理的异常
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using Microsoft.Phone.Controls;
namespace WebServiceTest
{
public partial class MainPage : PhoneApplicationPage
{
// Constructor
public MainPage()
{
InitializeComponent();
}
private void PhoneApplicationPage_Loaded(object sender, RoutedEventArgs e)
{
try
{
ServiceReference.PDAServiceSoapClient ws =
new ServiceReference.PDAServiceSoapClient();
ws.GetResoureAroudCompleted +=
new EventHandler<ServiceReference.GetResoureAroudCompletedEventArgs>(ws_GetResoureAroudCompleted);
ws.GetResoureAroudAsync("基站,机楼", 113, 23, 10000);
}
catch
{
System.Windows.MessageBox.Show("error!");
}
}
void ws_GetResoureAroudCompleted(object sender, ServiceReference.GetResoureAroudCompletedEventArgs e)
{
if (e.Error != null)
{
var result = e.Result;
}
}
}
}
然后我跑PhoneApplication并得到此异常:
System.InvalidOperationException了未处理 消息=有反射型的错误 'WebServiceTest.ServiceReference.GetResoureAroudResponseGetResoureAroudResult'。 的InnerException信息:System.InvalidOperationException 消息=有反射性 'ANY1' 错误。
在Reference.cs 代码:
public WebServiceTest.ServiceReference.GetResoureAroudResponseGetResoureAroudResult EndGetResoureAroud(System.IAsyncResult result) {
object[] _args = new object[0];
**WebServiceTest.ServiceReference.GetResoureAroudResponseGetResoureAroudResult _result = ((WebServiceTest.ServiceReference.GetResoureAroudResponseGetResoureAroudResult)(base.EndInvoke("GetResoureAroud", _args, result)));**
return _result;
}
它不是通过的try-catch抓,有人知道为什么吗?
什么类型的网络服务返回的结果呢? – sternr
感谢您的申请,网络服务返回一个DataTable,这是一个问题,因为windows-phone-7不支持ADO.NET。 – kylin