none
Int?类型的XmlAttribute在XML序列化时出错。 RRS feed

  • 问题

  • 小弟有一段xml如下:

    <Items>

      <Item Name="abc" Num="10" />

      <Item Name="abc" />

    </Items>

    类中定义Num为Int?类型,但序列化时出错!

    Item类如下:

        public class Item
        {
            [XmlAttribute("Name")]
            public string Name

            {
                get;
                set;
            }

            [XmlAttribute("Num")]
            public int? Num

            {
                get;
                set;
            }

       }

    不甚感激!



    2011年5月12日 1:55

答案

  • 如果生成XSD再用XSD生成CS的话,应该会生成两个属性,一个是int,另外一个是bool IsNumSpecified。如果你不想多两个属性的话,可以自己实现IXmlSerializable



    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful, so they will appear differently to other users who are visiting your thread for the same problem.
    Visual C++ MVP
    2011年5月12日 3:23
    版主

全部回复

  • 如果生成XSD再用XSD生成CS的话,应该会生成两个属性,一个是int,另外一个是bool IsNumSpecified。如果你不想多两个属性的话,可以自己实现IXmlSerializable



    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful, so they will appear differently to other users who are visiting your thread for the same problem.
    Visual C++ MVP
    2011年5月12日 3:23
    版主
  • 按您的提示,测试通过。多谢!
    2011年5月12日 4:13
  • 楼主能告诉如何实现的吗?
    2013年12月2日 8:31