`
bluedusk
  • 浏览: 263814 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

C#的XML序列化和反序列化2

    博客分类:
  • .Net
阅读更多

5.格式化文本内容        

         [XmlText()]
        
public string Name
        
{
            
get { return name; }
            
set { name = value; }
         }


         则Name会生成在<Pupil>XXX(Name)</Pupil>中作为文本

     6.为元素/属性定义数据类型
         XML Schema类型与.NET数据类型有一个Mapping,比如说type对应System.DateTime

         [XmlElement(DataType = " date " )]
        
public DateTime EnrollDate
        
{
            
get { return enrollDate; }
            
set { enrollDate = value; }
         }


         于是生成XML: <EnrollDate>2007-10-19</EnrollDate>
         XMLRoot,XmlAttribute,XMLElement,XMLText,XMLArrayItem标签都可以指定DataType



     7.为枚举修饰符指定其他名称

         public enum Color
        
{
             [XmlEnum(Name
= " White Color " )]
             White,
             [XmlEnum(Name
= " Black Color " )]
             Black,
             [XmlEnum(Name
= " Red Color " )]
             Red
         }


        
private Color showColor;

        
public Color ShowColor
        
{
            
get { return showColor; }
            
set { showColor = value; }
         }


生成XML如下格式:
     <ShowColor>White Color</ShowColor>

     8.串行化多肽数组

         [XmlArray(ElementName = " Cources " ),
         XmlArrayItem(Type
= typeof (String), ElementName = " CourceName " ),
         XmlArrayItem(Type
= typeof (Int32), ElementName = " CourceCode " )]
        
public Object[] Subjects
        
{
            
get { return subjects; }
            
set { subjects = value; }
         }

XmlArrayItem负责指定数组中可能出现的元素类型,以及该类型对应的XML前缀
比如说创建如下的数组:
     Object obj = new Object["Physics", 123, "IT"];

生成XML如下格式:

< Cources >
    
< CourceName > Physics </ CourceName >
    
< CourceCode > 123 </ CourceCode >
    
< CourceName > IT </ CourceName >
</ Cources >


     9.定义可空的对象引用
         如果某属性为null,在串行化时会忽略该属性,可以显示替代的信息,方法如下:

         [XmlElement(IsNullable = true )]
        
public string Address
        
{
            
get { return address; }
            
set { address = value; }
         }

在该位置,生成替代XML:
      <Address xsi:nil="true" />

     10.定义可忽略的字段/属性
         [XmlIgnore()]

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics