Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ SerializeTableData()

void System.Data.DataTable.SerializeTableData ( SerializationInfo info,
StreamingContext context,
int serIndex )
inlinepackageinherited

Definition at line 1508 of file DataTable.cs.

1509 {
1510 int count = Columns.Count;
1511 int count2 = Rows.Count;
1512 int num = 0;
1513 int num2 = 0;
1515 for (int i = 0; i < count2; i++)
1516 {
1517 int num3 = i * 3;
1518 DataRow dataRow = Rows[i];
1519 DataRowState rowState = dataRow.RowState;
1520 switch (rowState)
1521 {
1522 case DataRowState.Added:
1523 bitArray[num3 + 1] = true;
1524 break;
1525 case DataRowState.Modified:
1526 bitArray[num3] = true;
1527 num++;
1528 break;
1529 case DataRowState.Deleted:
1530 bitArray[num3] = true;
1531 bitArray[num3 + 1] = true;
1532 break;
1533 default:
1534 throw ExceptionBuilder.InvalidRowState(rowState);
1535 case DataRowState.Unchanged:
1536 break;
1537 }
1538 if (-1 != dataRow._tempRecord)
1539 {
1540 bitArray[num3 + 2] = true;
1541 num2++;
1542 }
1543 }
1544 int num4 = count2 + num + num2;
1547 if (num4 > 0)
1548 {
1549 for (int j = 0; j < count; j++)
1550 {
1551 object emptyColumnStore = Columns[j].GetEmptyColumnStore(num4);
1553 BitArray value = new BitArray(num4);
1555 }
1556 }
1557 int num5 = 0;
1558 Hashtable hashtable = new Hashtable();
1560 for (int k = 0; k < count2; k++)
1561 {
1562 int num6 = Rows[k].CopyValuesIntoStore(arrayList, arrayList2, num5);
1563 GetRowAndColumnErrors(k, hashtable, hashtable2);
1564 num5 += num6;
1565 }
1567 info.AddValue(string.Format(invariantCulture, "DataTable_{0}.Rows.Count", serIndex), count2);
1568 info.AddValue(string.Format(invariantCulture, "DataTable_{0}.Records.Count", serIndex), num4);
1569 info.AddValue(string.Format(invariantCulture, "DataTable_{0}.RowStates", serIndex), bitArray);
1570 info.AddValue(string.Format(invariantCulture, "DataTable_{0}.Records", serIndex), arrayList);
1571 info.AddValue(string.Format(invariantCulture, "DataTable_{0}.NullBits", serIndex), arrayList2);
1572 info.AddValue(string.Format(invariantCulture, "DataTable_{0}.RowErrors", serIndex), hashtable);
1573 info.AddValue(string.Format(invariantCulture, "DataTable_{0}.ColumnErrors", serIndex), hashtable2);
1574 }
void Add(TKey key, TValue value)
DataRowCollection Rows
Definition DataTable.cs:701
void GetRowAndColumnErrors(int rowIndex, Hashtable rowErrors, Hashtable colErrors)
DataColumnCollection Columns
Definition DataTable.cs:327
static CultureInfo InvariantCulture

References System.Collections.Generic.Dictionary< TKey, TValue >.Add(), System.Data.DataTable.Columns, System.Data.DataRowCollection.Count, System.Data.InternalDataCollectionBase.Count, System.count, System.Runtime.Serialization.Dictionary, System.Format, System.Data.DataTable.GetRowAndColumnErrors(), System.info, System.Data.ExceptionBuilder.InvalidRowState(), System.Globalization.CultureInfo.InvariantCulture, System.Data.DataTable.Rows, and System.value.

Referenced by System.Data.DataTable.SerializeDataTable().