public ResultsetFormatter ReadResponse(XmlReader reader, InlineErrorHandlingType inlineErrorHandling) { ResultsetFormatter result; try { ResultsetFormatter resultsetFormatter = null; if (XmlaClient.IsExecuteResponseS(reader)) { resultsetFormatter = SoapFormatter.ReadExecuteResponsePrivate(reader, inlineErrorHandling); } else if (XmlaClient.IsDiscoverResponseS(reader)) { resultsetFormatter = SoapFormatter.ReadDiscoverResponsePrivate(reader, inlineErrorHandling, null, false, null); } else { if (!XmlaClient.IsEmptyResultS(reader)) { throw new AdomdUnknownResponseException(XmlaSR.UnknownServerResponseFormat, string.Format(CultureInfo.InvariantCulture, "Expected execute or discover response, or empty result, got {0}", new object[] { reader.Name })); } XmlaClient.ReadEmptyRootS(reader); } result = resultsetFormatter; } catch (XmlException innerException) { throw new AdomdUnknownResponseException(XmlaSR.UnknownServerResponseFormat, innerException); } catch (IOException innerException2) { if (this.client != null) { this.client.Disconnect(false); } throw new AdomdConnectionException(XmlaSR.ConnectionBroken, innerException2); } catch (AdomdUnknownResponseException) { throw; } catch (XmlaException) { throw; } catch { if (this.client != null) { this.client.Disconnect(false); } throw; } finally { this.EndReceival(reader); } return(result); }