public static void SaveToXml(string filePath, object sourceObj, Type type, string xmlRootName)
{
if (!string.IsNullOrWhiteSpace(filePath) && sourceObj != null)
{
type = type != null ? type : sourceObj.GetType();
using (StreamWriter writer = new StreamWriter(filePath))
{
System.Xml.Serialization.XmlSerializer xmlSerializer = string.IsNullOrWhiteSpace(xmlRootName) ?
new System.Xml.Serialization.XmlSerializer(type) :
new System.Xml.Serialization.XmlSerializer(type, new XmlRootAttribute(xmlRootName));
xmlSerializer.Serialize(writer, sourceObj);
}
}
}
public static object LoadFromXml(string filePath, Type type)
{
object result = null;
if (File.Exists(filePath))
{
using (StreamReader reader = new StreamReader(filePath))
{
System.Xml.Serialization.XmlSerializer xmlSerializer = new System.Xml.Serialization.XmlSerializer(type);
result = xmlSerializer.Deserialize(reader);
}
}
return result;
}
//主类特性
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
[System.Xml.Serialization.XmlRootAttribute(Namespace = "", IsNullable = false)]
//属性特性
/// <remarks/>
[System.Xml.Serialization.XmlElementAttribute("AirLineCompany")]
//序列化指定特定的节点名称
[System.Xml.Serialization.XmlType("AirLine")]
public class Ret_AirLine
{
public string DepartureAirport { get; set; }
public string ArrivalAirport { get; set; }
/// <summary>
/// PassengerName PassengerType IdNo KeepFee ReturnMoney
/// </summary>
public List<Passenger> PassengerList { get; set; } = new List<Passenger>();
}