关于BeginGetResponse的问题

public class A{
public void SetJsonSource(string _Uri)
{
WebRequest req = WebRequest.Create(_Uri);
req.Method = "GET";
req.BeginGetResponse(ResponseCallback, req);

    }
            private void ResponseCallback(IAsyncResult result)
    {
        string JsonSource = "";
        HttpWebRequest httpwenReq = (HttpWebRequest)result.AsyncState;
        WebResponse webResponse = httpwenReq.EndGetResponse(result);
        using (Stream stream = webResponse.GetResponseStream())
        using (StreamReader reader = new StreamReader(stream))
        {
            JsonSource = reader.ReadToEnd();
        }  

    }

}
public class B{
void GetSource(){
A a =new A();
a.SetJsonSource("****");
}
}
问题是怎么样得到ResponseCallback里面的JsonSource?

定义一个委托或函数,然后在ResponseCallback调用就可以了

public class A{
    public string JsonSource { get; private set; }

    public void SetJsonSource(string _Uri)
    {
        WebRequest req = WebRequest.Create(_Uri);
    req.Method = "GET";
        req.EndGetRequestStream(asynchronousResult)
    req.BeginGetResponse(ResponseCallback, req);
    }

    private void ResponseCallback(IAsyncResult result)
    {
        //string JsonSource = "";
        HttpWebRequest httpwenReq = (HttpWebRequest)result.AsyncState;
        WebResponse webResponse = httpwenReq.EndGetResponse(result);
        using (Stream stream = webResponse.GetResponseStream())
        using (StreamReader reader = new StreamReader(stream))
        {
            JsonSource = reader.ReadToEnd();
        }
    }
}
public class B{
    void GetSource(){
        A a =new A();
        a.SetJsonSource("****");
        a.JsonSource;
    }
}