簡體   English   中英

Windows Phone 8.1的WCF Silverlight

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM