protected virtual BrokerError TightUnmarshalBrokerError(
OpenWireFormat wireFormat,
BinaryReader dataIn,
BooleanStream bs)
{
if (bs.ReadBoolean())
{
BrokerError answer = new BrokerError();
answer.ExceptionClass = TightUnmarshalString(dataIn, bs);
answer.Message = TightUnmarshalString(dataIn, bs);
if (wireFormat.StackTraceEnabled)
{
short length = dataIn.ReadInt16();
StackTraceElement[] stackTrace = new StackTraceElement[length];
for (int i = 0; i < stackTrace.Length; i++)
{
StackTraceElement element = new StackTraceElement();
element.ClassName = TightUnmarshalString(dataIn, bs);
element.MethodName = TightUnmarshalString(dataIn, bs);
element.FileName = TightUnmarshalString(dataIn, bs);
element.LineNumber = dataIn.ReadInt32();
stackTrace[i] = element;
}
answer.StackTraceElements = stackTrace;
answer.Cause = TightUnmarshalBrokerError(wireFormat, dataIn, bs);
}
return answer;
}
else
{
return null;
}
}