1

我正在使用适用于 Windows Phone 的 Windows Azure 工具包,但我很难将队列消息发送到云服务。这是我的代码:

public void SendQueueMessage(string queueReference, params string[] message)
    {
        CloudQueue cloudQueue = new CloudQueue();
        CloudQueueClient queueClient = new CloudQueueClient(queueUri, credentials);
        queueClient.GetQueueReference(queueReference);

        StringBuilder sb = new StringBuilder();
        foreach (var messagePart in message)
        {
            sb.Append(messagePart);
            sb.Append(":");
        }
        sb.Remove(sb.Length - 2, 1);
        CloudQueueMessage queueMessage = new CloudQueueMessage { AsBytes = Encoding.UTF8.GetBytes(sb.ToString()) };
        cloudQueue.AddMessage(queueMessage, r => this.dispatcher.BeginInvoke(() => 
                                                                             {
                                                                                 if(r.Exception != null)
                                                                                 {
                                                                                     //handle exception
                                                                                 }
                                                                             }));
    }

我总是在 AddMessage 方法中遇到空异常。有什么想法吗?

4

1 回答 1

1

我怀疑您现在可能已经找到了如何执行此操作,但经过大量查看后,我发现如何通过 cloudcove r 的这一集从 Windows Phone 将队列添加到存储中。您应该在 13:44 分钟左右查看。

http://www.joshholmes.com/blog/2012/01/18/using-windows-azure-storage-from-the-windows-phone/

希望这会帮助你

编辑:从视频中复制代码后,它应该看起来像这样:

  var queueClient = CloudStorageContext.Current.Resolver.CreateCloudQueueClient();
        var queue = queueClient.GetQueueReference("imagestodo");
        queue.Create(r => queue.AddMessage(
               new CloudQueueMessage
               {
                   AsBytes = Encoding.UTF8.GetBytes(imageID),
                   Id = imageID
               },
               c =>
                   {
                       //logic here
                   }));
于 2012-04-19T22:54:04.583 回答