public void encodeArray(DataTable rows)
{
int count = byteCount(rows.Rows.Count);
write(edsArrayLen1 + count - 1);
for (int shift = (count - 1) * 8; shift >= 0; shift -= 8)
{
write(rows.Rows.Count >> shift);
}
foreach (DataRow record in rows.Rows)
{
int numFields = record.ItemArray.Length;
write(edsArrayLen1 + numFields - 1);
for (int shift = (numFields - 1) * 8; shift >= 0; shift -= 8)
{
write(numFields >> shift);
}
for (int column = 0; column < numFields; column++)
{
encodeDotNetObject(record[column]);
}
}
}