C#自定义序列化 - 使用TypeConverter

时间:2009-12-29 03:57:41

标签: c# asp.net serialization viewstate

所以我需要序列化像Dictionary<long, List<MyClass>>这样的通用字典。我需要序列化它以将其存储在ASP.Net应用程序的ViewState中。

我找到了一个使用TypeConverter将我的类转换为要序列化的字符串的示例,但是收到一条错误消息MyClass is not marked as serializable

以下是我班的代码..

 [TypeConverter (typeof(MyClass_Converter))]
 public class MyClass
 {
     // some properties
 }

 public class MyClass_Converter : System.ComponentModel.TypeConverter
 {
     public override bool CanConvertTo(...)
     {
         // code
     }

     // CanConvertFrom, ConvertFrom, ConvertTo methods
 }

然后当我想序列化它时,我正在使用这段代码......

 LosFormatter los = new LosFormatter();
 StringWriter sw = new StringWriter();
 los.Serialize(sw, hiddenData);
 String resultSt = sw.GetStringBuilder().ToString();   
 ViewState["HiddenData"] = resultSt;  

我做错了吗?

1 个答案:

答案 0 :(得分:5)