解决方案 »

  1.   

    msdn search 自定义序列化
      

  2.   

    我觉得可以使用两个变量,
    一个用于序列化,string类型另一个用于读写,例如[code=csharp]
    class Test
    {
         [XmlIgnore]
          public int A{get;set;}
          [XmlElement("A")]
          public string AString
         {
              set 
              {
                      try{ A = int.Parse(value); }
                     catch{ A = 0;}   // default value
              }
              get
              {
                       return A.ToString();
              }
         }
    }
    [/code]代码手写,可能有些许错误。
      

  3.   

    恩,这个方法我一开始就想到了,所以我特地在附注1里写了,这是个备用方案,但是不到比不得以我不太想这么干。
    我比较希望的是有类似 [XmlIgnore]的这种声明,可以声明如果这个xml转这个变量失败,就不要转。
    或者XmlSerializer本身提供针对这种类型转换处理的方法重写,我只要重写掉这个方法就行。
    这种比较简单而且清晰的方法。先为xml对应一个string,然后再定义一个int通过get set来这个写起来太长了,有多少元素就要写多少个,写出来实在不太好看。