internal bool GetNext(out BinaryTypeEnum outBinaryTypeEnum, out Object outTypeInformation)
{
//Initialize the out params up here.
outBinaryTypeEnum = BinaryTypeEnum.Primitive;
outTypeInformation = null;
#if _DEBUG
SerTrace.Log( this, "GetNext Entry");
Dump();
#endif
if (objectTypeEnum == InternalObjectTypeE.Array)
{
SerTrace.Log( this, "GetNext Array");
// Array
if (count == numItems)
return false;
else
{
outBinaryTypeEnum = binaryTypeEnum;
outTypeInformation = typeInformation;
if (count == 0)
isInitial = false;
count++;
SerTrace.Log( this, "GetNext Array Exit ",((Enum)outBinaryTypeEnum).ToString()," ",outTypeInformation);
return true;
}
}
else
{
// Member
SerTrace.Log( this, "GetNext Member");
if ((count == memberLength) && (!isInitial))
return false;
else
{
outBinaryTypeEnum = binaryTypeEnumA[count];
outTypeInformation = typeInformationA[count];
if (count == 0)
isInitial = false;
name = memberNames[count];
if (memberTypes == null)
{
SerTrace.Log( this, "GetNext memberTypes = null");
}
dtType = memberTypes[count];
count++;
SerTrace.Log( this, "GetNext Member Exit ",((Enum)outBinaryTypeEnum).ToString()," ",outTypeInformation," memberName ",name);
return true;
}
}
}