在构建win phone 8.1 Silverlight的同时, 添加了对WCF的服务引用,一些参考方法:
[OperationContract]
Task<GetPlayListResponse> GetPlayList(GetPlayListRequest request);
并像这样使用它:
private void Button_Click(object sender, RoutedEventArgs e)
{
var service = new MediaServiceClient();
service.GetPlayListCompleted += service_GetPlayListCompleted;
GetPlayListRequest request = new GetPlayListRequest { BusinessId = 41 };
service.GetPlayListAsync(request);
}
void service_GetPlayListCompleted(object sender, MediaService.GetPlayListCompletedEventArgs e)
{
var response = e.Result;
if (response.Result.ResultCode == eRequestResultCode.Success)
{
lb_RequestList.ItemsSource = response.Songs;
}
}
获取以下错误消息:
[System.ArgumentException] {System.ArgumentException: Value does not fall within the expected range. at System.Net.Browser.ClientHttpWebRequest.InternalEndGetResponse(IAsyncResult asyncResult) at System.Net.Browser.ClientHttpWebRequest.<>c__DisplayClasse.<EndGetResponse>b__d(Object sendState) at System.Net.Browser.AsyncHelper.<>c__DisplayClass1.<BeginOnUI>b__0(Object sendState)} System.ArgumentException
这里有例外:
public WinPhone.Silverlight_Client.MediaService.GetPlayListResponse EndGetPlayList(System.IAsyncResult result) {
object[] _args = new object[0];
WinPhone.Silverlight_Client.MediaService.GetPlayListResponse _result = ((WinPhone.Silverlight_Client.MediaService.GetPlayListResponse)(base.EndInvoke("GetPlayList", _args, result)));
return _result;
}