Set XML tag name for Serialization

本文介绍了一个使用C#进行XML序列化的示例程序,该程序创建了一个包含员工信息的对象,并将其序列化到名为“Employees.xml”的文件中。员工信息包括姓名、地址和入职日期等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

using  System;
using  System.IO;
using  System.Xml.Serialization;

public class  Serializer  {

   public static  void  Main ( string  []  args ) {
     Personnel personnel = CreatePersonnel () ;
     XmlSerializer serializer =  new  XmlSerializer ( typeof ( Personnel )) ;
     using  ( FileStream stream = File.OpenWrite ( "Employees.xml" )) {
       serializer.Serialize ( stream, personnel ) ;
     }
   }
  
   private static  Personnel CreatePersonnel () {
     Personnel personnel =  new  Personnel () ;
     personnel.Employees =  new  Employee  [] { new  Employee ()} ;
     personnel.Employees [ 0 ] .FirstName =  "Joe" ;
     personnel.Employees [ 0 ] .MiddleInitial =  "M" ;
     personnel.Employees [ 0 ] .LastName =  "Lee" ;
    
     personnel.Employees [ 0 ] .Addresses =  new  Address  [] { new  Address ()} ;
     personnel.Employees [ 0 ] .Addresses [ 0 ] .AddressType = AddressType.Home;
     personnel.Employees [ 0 ] .Addresses [ 0 ] .Street =  new  string  [] { "999 Colluden" } ;
     personnel.Employees [ 0 ] .Addresses [ 0 ] .City =  "Vancouver" ;
     personnel.Employees [ 0 ] .Addresses [ 0 ] .State = State.BC;
     personnel.Employees [ 0 ] .Addresses [ 0 ] .Zip =  "V5V 4X7" ;
    
     personnel.Employees [ 0 ] .HireDate =  new  DateTime ( 2001 , 1 , 1 ) ;
    
     return  personnel;
   }
}


[ Serializable ]
public enum  AddressType  {
   Home,
   Office
}

[ Serializable ]
public enum  State  {
   [ XmlEnum ( Name= "British C" )] BC,
   [ XmlEnum ( Name= "Sask" )] SK
}

[ Serializable ]
public class  Address  {
   [ XmlAttribute ( AttributeName= "type" )]   public  AddressType AddressType;
   [ XmlElement ( ElementName= "street" )]     public  string []  Street;
   [ XmlElement ( ElementName= "city" )]       public  string City;
   [ XmlElement ( ElementName= "state" )]      public  State State;
   [ XmlElement ( ElementName= "zip" )]        public  string Zip;
}

[ Serializable ]
public class  TelephoneNumber  {
   [ XmlAttribute ( AttributeName= "type" )]  public  AddressType AddressType;
   [ XmlElement ( ElementName= "areacode" )]  public  string AreaCode;
   [ XmlElement ( ElementName= "exchange" )]  public  string Exchange;
   [ XmlElement ( ElementName= "number" )]    public  string Number;
}

[ Serializable ]
public class  Employee  {
   [ XmlAttribute ( AttributeName= "firstname" )]       public  string FirstName;
   [ XmlAttribute ( AttributeName= "middleinitial" )]   public  string MiddleInitial;
   [ XmlAttribute ( AttributeName= "lastname" )]        public  string LastName;
  
   [ XmlArray ( ElementName= "addresses" )]
   [ XmlArrayItem ( ElementName= "address" )]       public  Address  []  Addresses;
   [ XmlArray ( ElementName= "telephones" )] 
   [ XmlArrayItem ( ElementName= "telephone" )]     public  TelephoneNumber  []  TelephoneNumbers;
  
   [ XmlAttribute ( AttributeName= "hiredate" )]    public  DateTime HireDate;
}

[ Serializable ]
[ XmlRoot ( ElementName= "personnel" )]
public class  Personnel  {
   [ XmlElement ( ElementName= "employee" )]
   public  Employee  []  Employees;
}


           
         
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值