求救,关于将自定义对象保存到ViewState中遇到的问题!
我的自定义类代码如下:
[Serializable()]
public class Tree
{
private TreeView tree = null;
public Tree(TreeView _tree)
{
tree = _tree;
}
}
我在页面上实例化了一个这个类,然后将实例对象保存到了ViewState中,但是页面执行后却出现‘TreeView未标记为序列化’的错误,请大家帮帮我~~
[解决办法]
TreeView不支持序列化,去网上找找有很多相关资料
[解决办法]
序列化有两种,二进制和XML。
你可以把对象序列化成二进制并保存到STRING里,用时再反序列化。
下面两个方法就是STRING 到 任意对象的相互转换
public static string StringObj(object obj)
{
try
{
byte[] byteArr;
using(MemoryStream ms = new MemoryStream())
{
new BinaryFormatter().Serialize(ms, obj);
byteArr =ms.GetBuffer();
}
return new UnicodeEncoding().GetString(byteArr);
}
catch(Exception err)
{
}
return null;
}
public static object ObjectStr(string str)
{
object obj = null;
try
{
byte[] byteArr = new UnicodeEncoding().GetBytes(str);
using(MemoryStream ms = new MemoryStream(byteArr))
{
obj = new BinaryFormatter().Deserialize(ms);
}
}
catch(Exception err)
{
}
return obj;
}