我将如何为下面的代码生成 Xml ..Order 类中的 void getxml() 方法的代码,该方法取决于 Deli

本文关键字:方法 getxml void 代码 Deli 取决于 Order Xml 代码生成 | 更新日期: 2023-09-27 18:35:51

public class OrderXml
{
 public enum DeliveryType { FTP, Email, HDD, Tape, Aspera, MLT };
    public class Order
    {
        public int UserId { get; private set; }
        public int OrderBinId { get; private set; }
        public int TenantId { get; private set; }
        public Delivery Delivery { get; set; }
        public Recipient Recipient { get; private set; }
        public string[] AssetDmGuids { get; set; }
        public Order(int orderBinId, string[] assetDmGuids, DeliveryType type, int recipientId, string recipientName)
        {
            Delivery = new Delivery(type);
            Recipient = new Recipient(recipientId, recipientName);
            // UserId = SessionHelper.Instance.GetUserId();
            // TenantId = SessionHelper.Instance.GetTenantID().ToString();
            OrderBinId = orderBinId;
            AssetDmGuids = assetDmGuids;
        }
        public void GetXml()
        {
        }
    }
    public class Recipient
    {
        int _id;
        string _name = string.Empty;
        public Recipient(int id, string name)
        {
            this._id = id;
            this._name = name;
        }
        public int Id { get { return _id; } }
        public string Name { get { return _name; } }
    }
    public class Delivery
    {
        DeliveryType _deliveryType;
        string _ftpLocation = string.Empty;
        string _ftpPath = string.Empty;
        string[] _emailAddresses;
        string _deliveryAddress = string.Empty;
        string _deliveryComments = string.Empty;
        string _asperaLocation = string.Empty;
        public string FtpPath
        {
            get { return _ftpPath; }
            set { _ftpPath = value; }
        }
        public string[] EmailAddresses
        {
            get { return _emailAddresses; }
            set { _emailAddresses = value; }
        }
        public string DeliveryAddress
        {
            get { return _deliveryAddress; }
            set { _deliveryAddress = value; }
        }
        public string DeliveryComments
        {
            get { return _deliveryComments; }
            set { _deliveryComments = value; }
        }
        public string AsperaLocation
        {
            get { return _asperaLocation; }
            set { _asperaLocation = value; }
        }
        public string FtpLocation
        {
            get { return _ftpLocation; }
            set { _ftpLocation = value; }
        }
        public Delivery(DeliveryType type)
        {
            _deliveryType = type;
        }
    }
    public static void Main()
    {
        Order ord = new Order(1, new string[] { "123", "124", "125" }, DeliveryType.Tape, 1, "vh1");
}
}

我将如何为下面的代码生成 Xml ..Order 类中的 void getxml() 方法的代码,该方法取决于 Deli

public XmlDocument GetXml()
{
        XmlDocument retValue = new XmlDocument();
        try
        {
                XmlSerializer xs = new XmlSerializer(this.GetType()); 
            Stream stream = new MemoryStream();
            xs.Serialize( stream, toSerialize );
            stream.Position = 0;
            retValue.Load( stream );
        }
        catch (Exception ex)
        {
        }
    return retValue;
}