📄 xmlexporter.cs
字号:
if (len < 0)
{
writer.Write("null");
}
else
{
writer.Write('\n');
while (--len >= 0)
{
indentation(indent + 1);
writer.Write("<element>" + (ushort)Bytes.unpack2(body, offs) + "</element>\n");
offs += 2;
}
indentation(indent);
}
break;
}
case ClassDescriptor.FieldType.tpArrayOfInt:
{
int len = Bytes.unpack4(body, offs);
offs += 4;
if (len < 0)
{
writer.Write("null");
}
else
{
writer.Write('\n');
while (--len >= 0)
{
indentation(indent + 1);
writer.Write("<element>" + Bytes.unpack4(body, offs) + "</element>\n");
offs += 4;
}
indentation(indent);
}
break;
}
case ClassDescriptor.FieldType.tpArrayOfEnum:
{
int len = Bytes.unpack4(body, offs);
offs += 4;
if (len < 0)
{
writer.Write("null");
}
else
{
Type elemType = f.FieldType.GetElementType();
writer.Write('\n');
while (--len >= 0)
{
indentation(indent + 1);
writer.Write("<element>" + Enum.ToObject(elemType, Bytes.unpack4(body, offs)) + "</element>\n");
offs += 4;
}
indentation(indent);
}
break;
}
case ClassDescriptor.FieldType.tpArrayOfUInt:
{
int len = Bytes.unpack4(body, offs);
offs += 4;
if (len < 0)
{
writer.Write("null");
}
else
{
writer.Write('\n');
while (--len >= 0)
{
indentation(indent + 1);
writer.Write("<element>" + (uint)Bytes.unpack4(body, offs) + "</element>\n");
offs += 4;
}
indentation(indent);
}
break;
}
case ClassDescriptor.FieldType.tpArrayOfLong:
{
int len = Bytes.unpack4(body, offs);
offs += 4;
if (len < 0)
{
writer.Write("null");
}
else
{
writer.Write('\n');
while (--len >= 0)
{
indentation(indent + 1);
writer.Write("<element>" + Bytes.unpack8(body, offs) + "</element>\n");
offs += 8;
}
indentation(indent);
}
break;
}
case ClassDescriptor.FieldType.tpArrayOfULong:
{
int len = Bytes.unpack4(body, offs);
offs += 4;
if (len < 0)
{
writer.Write("null");
}
else
{
writer.Write('\n');
while (--len >= 0)
{
indentation(indent + 1);
writer.Write("<element>" + (ulong)Bytes.unpack8(body, offs) + "</element>\n");
offs += 8;
}
indentation(indent);
}
break;
}
case ClassDescriptor.FieldType.tpArrayOfFloat:
{
int len = Bytes.unpack4(body, offs);
offs += 4;
if (len < 0)
{
writer.Write("null");
}
else
{
writer.Write('\n');
while (--len >= 0)
{
indentation(indent + 1);
writer.Write("<element>" + Bytes.unpackF4(body, offs) + "</element>\n");
offs += 4;
}
indentation(indent);
}
break;
}
case ClassDescriptor.FieldType.tpArrayOfDouble:
{
int len = Bytes.unpack4(body, offs);
offs += 4;
if (len < 0)
{
writer.Write("null");
}
else
{
writer.Write('\n');
while (--len >= 0)
{
indentation(indent + 1);
writer.Write("<element>" + Bytes.unpackF8(body, offs) + "</element>\n");
offs += 8;
}
indentation(indent);
}
break;
}
case ClassDescriptor.FieldType.tpArrayOfDate:
{
int len = Bytes.unpack4(body, offs);
offs += 4;
if (len < 0)
{
writer.Write("null");
}
else
{
writer.Write('\n');
while (--len >= 0)
{
indentation(indent + 1);
writer.Write("<element>\"" + Bytes.unpackDate(body, offs) + "\"</element>\n");
offs += 8;
}
}
break;
}
case ClassDescriptor.FieldType.tpArrayOfGuid:
{
int len = Bytes.unpack4(body, offs);
offs += 4;
if (len < 0)
{
writer.Write("null");
}
else
{
writer.Write('\n');
while (--len >= 0)
{
writer.Write("<element>\"" + Bytes.unpackGuid(body, offs) + "\"</element>\n");
offs += 16;
}
}
break;
}
case ClassDescriptor.FieldType.tpArrayOfDecimal:
{
int len = Bytes.unpack4(body, offs);
offs += 4;
if (len < 0)
{
writer.Write("null");
}
else
{
writer.Write('\n');
while (--len >= 0)
{
writer.Write("<element>\"" + Bytes.unpackDecimal(body, offs) + "\"</element>\n");
offs += 16;
}
}
break;
}
case ClassDescriptor.FieldType.tpArrayOfString:
{
int len = Bytes.unpack4(body, offs);
offs += 4;
if (len < 0)
{
writer.Write("null");
}
else
{
writer.Write('\n');
while (--len >= 0)
{
indentation(indent + 1);
writer.Write("<element>");
offs = exportString(body, offs);
writer.Write("</element>\n");
}
indentation(indent);
}
break;
}
case ClassDescriptor.FieldType.tpLink:
case ClassDescriptor.FieldType.tpArrayOfObject:
case ClassDescriptor.FieldType.tpArrayOfOid:
{
int len = Bytes.unpack4(body, offs);
offs += 4;
if (len < 0)
{
writer.Write("null");
}
else
{
writer.Write('\n');
while (--len >= 0)
{
indentation(indent + 1);
int oid = Bytes.unpack4(body, offs);
if (oid != 0 && (exportedBitmap[oid >> 5] & (1 << (oid & 31))) == 0)
{
markedBitmap[oid >> 5] |= 1 << (oid & 31);
}
writer.Write("<element><ref id=\"" + oid + "\"/></element>\n");
offs += 4;
}
indentation(indent);
}
break;
}
case ClassDescriptor.FieldType.tpArrayOfValue:
{
int len = Bytes.unpack4(body, offs);
offs += 4;
if (len < 0)
{
writer.Write("null");
}
else
{
writer.Write('\n');
while (--len >= 0)
{
indentation(indent + 1);
writer.Write("<element>\n");
offs = exportObject(fd.valueDesc, body, offs, indent + 2);
indentation(indent + 1);
writer.Write("</element>\n");
}
indentation(indent);
}
break;
}
#if SUPPORT_RAW_TYPE
case ClassDescriptor.FieldType.tpArrayOfRaw:
{
int len = Bytes.unpack4(body, offs);
offs += 4;
if (len < 0)
{
writer.Write("null");
}
else
{
writer.Write('\n');
while (--len >= 0)
{
indentation(indent+1);
writer.Write("<element>");
offs = exportBinary(body, offs);
writer.Write("</element>\n");
}
indentation(indent);
}
break;
}
#endif
}
writer.Write("</" + fieldName + ">\n");
}
return offs;
}
private StorageImpl storage;
private System.IO.StreamWriter writer;
private int[] markedBitmap;
private int[] exportedBitmap;
private ClassDescriptor.FieldType[] compoundKeyTypes;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -