代码之家  ›  专栏  ›  技术社区  ›  Ryan Alford

C自定义序列化-使用TypeConverter

  •  2
  • Ryan Alford  · 技术社区  · 15 年前

    所以我需要序列化一个通用字典 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 回复  |  直到 15 年前
        1
  •  5
  •   Matt Greer    15 年前