[英]WCF for windows phone 8.1 silverlight
我在將wcf與wp8.1 silverlight一起使用時遇到問題。 我收到很多錯誤消息合同'IPhoneService'包含同步操作,Silverlight不支持該操作。 將操作分為“開始”和“結束”部分,並將OperationContractAttribute的AsyncPattern屬性設置為“ true”。 請注意,您不必在服務器上進行相同的更改。 在將同步方法更改為異步后,我仍然遇到相同的錯誤(我更新了服務引用。)。 出於好奇,我嘗試在控制台應用程序上使用它,並且效果很好。 以前,我確實遇到了另一個可能與它有關的錯誤。 添加服務引用會生成一個app.config文件,但是該應用程序需要ServiceReferences.ClientConfig,因此我只是對其進行了重命名。
現在,我將WCF方法改回同步的:
public int GetData()
{
return 12;
}
在我的MainViewModel上(我正在使用MVVMLight工具包):
public void Load()
{
var client = new ServiceReference1.PhoneServiceClient();
client.GetDataCompleted += client_GetDataCompleted;
client.GetDataAsync();
}
void client_GetDataCompleted(object sender, ServiceReference1.GetDataCompletedEventArgs e)
{
Title = e.Result.ToString();
}
我在這樣的異步方法之前實現了,無論如何都會得到相同的錯誤:
public IAsyncResult BeginGetData(AsyncCallback callback, object asyncState)
{
var msg = 12;
return new CompletedAsyncResult<int>(msg);
}
public int EndGetData(IAsyncResult r)
{
CompletedAsyncResult<int> result = r as CompletedAsyncResult<int>;
return result.Data;
}
class CompletedAsyncResult<T> : IAsyncResult
{
T data;
public CompletedAsyncResult(T data)
{ this.data = data; }
public T Data
{ get { return data; } }
#region IAsyncResult Members
public object AsyncState
{ get { return (object)data; } }
public WaitHandle AsyncWaitHandle
{ get { throw new Exception("The method or operation is not implemented."); } }
public bool CompletedSynchronously
{ get { return true; } }
public bool IsCompleted
{ get { return true; } }
#endregion
}
問題是VS2013 RC2版本。 參考未正確生成。 更新解決了問題
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.