C# 使用WindowsPhone7解析JSON对象

C# 使用WindowsPhone7解析JSON对象,c#,json,windows-phone-7,C#,Json,Windows Phone 7,我正在尝试读取我创建的Uri,并将其显示在WindowsPhone7应用程序上。 我正在做这个教程: 我的问题是程序没有进入OpenReadCompletedEventHandler,我不知道为什么。为了调试,我放置了消息框,发现程序没有进入OpenReadCompletedEventHandler。以下是相关代码: void myButton_Click(object sender, RoutedEventArgs e) { try {

我正在尝试读取我创建的Uri,并将其显示在WindowsPhone7应用程序上。 我正在做这个教程:

我的问题是程序没有进入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);
        }

    }

提前谢谢

我从来没有用过这个,但是快速的谷歌会把我带到MSDN上的这个页面-

这应该告诉您为什么它不起作用-因为您正在使用一个读事件进行写操作。根据MSDN上的此页,您应该将OpenWriteCompletedEventHandler与OpenWriteAsync一起使用-