Use XML Serialization with Custom Objects

    技术2022-05-20  31

      using  System; using  System.Xml; using  System.Xml.Serialization; using  System.IO; public class  SerializeXml  {      private static  void  Main () {          CarList catalog =  new  CarList ( "New List" , DateTime.Now.AddYears ( 1 )) ;          Car []  cars =  new  Car [ 2 ] ;          cars [ 0 new  Car ( "Car 1" 12342.99 m ) ;          cars [ 1 new  Car ( "Car 2" 21234123.9 m ) ;          catalog.Cars = cars;          XmlSerializer serializer =  new  XmlSerializer ( typeof ( CarList )) ;          FileStream fs =  new  FileStream ( "CarList.xml" , FileMode.Create ) ;          serializer.Serialize ( fs, catalog ) ;          fs.Close () ;          catalog =  null ;          // Deserialize the order from the file.          fs =  new  FileStream ( "CarList.xml" , FileMode.Open ) ;          catalog =  ( CarList ) serializer.Deserialize ( fs ) ;          // Serialize the order to the Console window.          serializer.Serialize ( Console.Out, catalog ) ;      } } [ XmlRoot ( "carList" )] public class  CarList  {      [ XmlElement ( "catalogName" )]      public  string ListName;           // Use the date data type (and ignore the time portion in the serialized XML).      [ XmlElement ( ElementName= "expiryDate" , DataType= "date" )]      public  DateTime ExpiryDate;           [ XmlArray ( "cars" )]      [ XmlArrayItem ( "car" )]      public  Car []  Cars;      public  CarList () {      }      public  CarList ( string catalogName, DateTime expiryDate ) {          this .ListName = catalogName;          this .ExpiryDate = expiryDate;      } } public class  Car  {      [ XmlElement ( "carName" )]      public  string CarName;           [ XmlElement ( "carPrice" )]      public  decimal CarPrice;           [ XmlElement ( "inStock" )]      public  bool InStock;           [ XmlAttributeAttribute ( AttributeName= "id" , DataType= "integer" )]      public  string Id;      public  Car () {      }      public  Car ( string carName, decimal carPrice ) {          this .CarName = carName;          this .CarPrice = carPrice;      } }                        

    最新回复(0)