我有一个类,里面有的成员是hashtable,我知道hashtable不能xml序列化,所以我在序列化之前吧他转移到arraylist里面去了,然后我在hashtable的对象上面加上了[Nonserialized]。
结果,序列化的时候依然提示我这个对象不能序列化,错误的原因还是说不能序列化这个hashtable,我明明加了一行要他不序列化呀,怎么还是这样?
请问这个问题怎么解决?
谢谢了
结果,序列化的时候依然提示我这个对象不能序列化,错误的原因还是说不能序列化这个hashtable,我明明加了一行要他不序列化呀,怎么还是这样?
请问这个问题怎么解决?
谢谢了
using System.Data;
using System.Configuration;
using System.Web;
using System.Collections;namespace Tools
{
public class NoSortHashtable : Hashtable
{
private ArrayList keys = new ArrayList();
public NoSortHashtable()
{
}
public override void Add(object key, object value)
{
base.Add(key, value);
keys.Add(key);
}
public override ICollection Keys
{
get
{
return keys;
}
}
public override void Clear()
{
base.Clear();
keys.Clear();
}
public override void Remove(object key)
{
base.Remove(key);
keys.Remove(key);
}
public override IDictionaryEnumerator GetEnumerator()
{
return base.GetEnumerator();
}
}
}
就是xml序列化要忽略的时候不是用【Nonserialized】而是用【XmlIgnore】
还有,就是xml仅序列化共有成员和非只读属性。
还有如果你的类里面包含了其他你自己定义的类在之前要加上[XmlInclude(typeof(你的类型))]
以上是我遇到的问题,希望对大家有帮助