0

我正在尝试从我创建的 Uri 中读取并将其显示在 Windows Phone 7 应用程序上。(我正在做这个教程:http: //msdn.microsoft.com/en-us/windowsmobile/Video/hh237494)。

我的问题是程序没有进入 OpenReadCompletedEventHandler,我不知道为什么。(我为了调试而放置了消息框,我发现程序没有进入 OpenReadCompletedEventHandler)。以下是相关代码:

    void myButton_Click(object sender, RoutedEventArgs e)
    {

        try
        {
            WebClient webClient = new WebClient();
            Uri uri = new Uri("http://localhost:44705/Service1.svc/GetAllBrands");
            webClient.OpenReadCompleted += new OpenReadCompletedEventHandler(webClient_OpenReadCompleted);
            try
            {
                webClient.OpenWriteAsync(uri);
                MessageBox.Show("opening sucsseded");
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
    }
    void webClient_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)
    {
        MessageBox.Show("OpenRead Handler");

      //  OpenWriteCompletedEventArgs temp = (OpenWriteCompletedEventArgs)e;
        DataContractJsonSerializer serializer = null;
        try
        {
            serializer = new DataContractJsonSerializer(typeof(ObservableCollection<Brand>));
            ObservableCollection<Brand> Brands = serializer.ReadObject(e.Result) as ObservableCollection<Brand>;
            foreach (Brand b in Brands)
            {
                int id = b.BrandId;
                string name = b.BrandName;
                listBrands.Items.Add(id + "             " + name);

            }

        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }

    }

提前致谢!

4

1 回答 1

0

我从来没有使用过这个,但是一个快速的谷歌将我带到 MSDN 上的这个页面 - http://msdn.microsoft.com/en-us/library/system.net.webclient.openreadcompleted.aspx

这应该告诉您为什么它不起作用 - 因为您正在使用读取事件进行写入操作。您应该按照MSDN 上的此页面使用OpenWriteCompletedEventHandlerwith - http://msdn.microsoft.com/en-us/library/system.net.webclient.openwritecompleted.aspxOpenWriteAsync

于 2012-05-06T18:48:29.407 回答