internal void WriteRectangleArray(NameInfo memberNameInfo, NameInfo arrayNameInfo, WriteObjectInfo objectInfo, NameInfo arrayElemTypeNameInfo, int rank, int[] lengthA, int[] lowerBoundA)
{
memberNameInfo.Dump("WriteRectangleArray memberNameInfo");
arrayNameInfo.Dump("WriteRectangleArray arrayNameInfo");
arrayElemTypeNameInfo.Dump("WriteRectangleArray arrayElemTypeNameInfo");
sbOffset.Length = 0;
sbOffset.Append("[");
Boolean isZero = true;
for (int i = 0; i<rank; i++)
{
if (lowerBoundA[i] != 0)
isZero = false;
if (i > 0)
sbOffset.Append(",");
sbOffset.Append(lowerBoundA[i]);
}
sbOffset.Append("]");
attrList.Clear();
if (memberNameInfo.NIobjectId == topId)
Write(InternalElementTypeE.ObjectBegin, "SOAP-ENV:Body", attrList, null, false, false);
if (arrayNameInfo.NIobjectId > 1)
attrList.Put("id", IdToString((int)arrayNameInfo.NIobjectId));
arrayElemTypeNameInfo.NIitemName = NameTagResolver(arrayElemTypeNameInfo, true);
attrList.Put("SOAP-ENC:arrayType", TypeArrayNameTagResolver(memberNameInfo, arrayNameInfo, true));
isUsedEnc = true;
if (!isZero)
attrList.Put("SOAP-ENC:offset", sbOffset.ToString());
String memberName = MemberElementName(memberNameInfo, null);
NamespaceAttribute();
Write(InternalElementTypeE.ObjectBegin, memberName, attrList, null, false, false);
}