private static void RespCallback(IAsyncResult asynchronousResult)
        {
            InternalAsyncRequestState internalAsyncRequestState = (InternalAsyncRequestState)asynchronousResult.AsyncState;

            try
            {
                HttpWebRequest  request      = internalAsyncRequestState.Request;
                HttpWebResponse httpResponse = (HttpWebResponse)request.EndGetResponse(asynchronousResult);
                Response        response     = BingMapsService.ReadResponse(httpResponse);
                if (response != null)
                {
                    internalAsyncRequestState.ResponseCallBack(response);
                }
                else
                {
                    internalAsyncRequestState.ErrorCallBack(new Exception("Error parsing Bing Maps Response"));
                }
            }
            catch (WebException obj)
            {
                internalAsyncRequestState.ErrorCallBack(obj);
            }
        }
        public static Response GetImageryMetadata(ImageryMetadataRequest imageryRequest)
        {
            HttpWebRequest httpWebRequest = WebRequest.Create(imageryRequest.GetRequestUrl()) as HttpWebRequest;

            return(BingMapsService.ReadResponse((HttpWebResponse)httpWebRequest.GetResponse()));
        }