我想知道類實例的大致XML序列化大小,而不實際序列化實例。當然,我可以提供一個屬性,將所有字段的大小以及將生成的XML標記的填充值一起明確加總。然而,(1)我想知道是否已經有一個工具可以達到這個目的 - 也許是擴展方法,如果不是的話(2)我想知道如何製作一個使用反射來近似大小的循環。可序列化類的近似大小
現在我正在做這樣的事情:
private static readonly int averageTagSize = 20;
[NonSerialized]
public int EventSize
{
get
{
int size = 0;
FieldInfo[] fields = this.GetType().GetFields(BindingFlags.Public | BindingFlags.Instance);
foreach (FieldInfo field in fields)
{
size += averageTagSize;
switch (field.FieldType){
case typeof(int):
size += 32;
break;
case typeof(string):
string temp = field.GetValue(this) as string;
size += temp.Length;
break;
//...and so on
}
}
return 0;
}
}
上面的代碼不起作用,因爲編譯器不會讓我打開類型信息。建議?
你能走了過來每個屬性和調用大小?從來沒有真正與此有關,但這是我開始 – PostMan 2010-08-31 01:20:50
@PostMan:sizeof地址編譯時的大小。它沒有計算機的運行時間值(例如我的班級中分配的字符串的長度)。 – 2010-08-31 01:36:23
是的,但是對於字符串的長度來說,它會是'sizeof(char)* string.length'是不正確的? – PostMan 2010-08-31 01:40:39