<Guys>
    <Name>宇春</Name>
    <IsMan></IsMan>
</Guys>对应的类,class Guys
{
    public string Name{get;set;}
    public bool?  IsMan{get;set;}
}
我反序列化上面的xml时,会报错,无法将""转换为boolean,应该是将IsMan指定为了"",
这个地方如何处理好一些?

解决方案 »

  1.   

    <IsMan>false</IsMan>
    应该设置成这样吧
      

  2.   

    Bool? 和Bool 不是一个类型  如果你非要这么用的话可以考虑将结果强转为Bool 否则最好就是将你的Bool?改成Bool
      

  3.   

    #1
    你的意思是说,要么提供值,要么不指定当前节点了?
    #2
    代码:using (StreamReader streamReader = new StreamReader(fileName))
         {
              var guys = (Guys)serializer.Deserialize(streamReader);
         }
    基本的反序列化代码
      

  4.   

    bool?  t=str==""?null:Convert.ToBoolean(str);
      

  5.   

    你需要加上特性[XmlElementAttribute("IsMan", IsNullable =ture)] 
     public bool?  IsMan{get;set;}
      

  6.   

    额,我稍微查了,发现老外们大多使用另外一个string属性中转一下参考http://stackoverflow.com/questions/9673030/deserialize-xml-with-empty-elements/9673208#9673208