需要有关创建生成XML的通用方法的帮助

时间:2013-09-19 11:55:50

标签: c# xml linq-to-xml

我想编写一个使用C#创建xml文件的通用方法。

假设我的XML Skeleton如下所示

<root>
    <customer>
        <mobile></mobile>
        <email></email>
        <external></external>
        <firstname></firstname>
        <lastname></lastname>
        <gender></gender>
        <registered></registered>
        <custom>
            <field>
                <name></name>
                <value></value>
            </field>
            <field>
                <name></name>
                <value></value>
            </field>
        </custom>
    </customer>         
</root>

如果我将传递一个包含所有必需值的对象,我的方法应该返回一个带有值的xml。

请注意: - 我的xml结构将来可能随时更改。

目前我已经创建了用于创建不同XML文件的单独方法。因此,只要在xml中发生任何更改,我就必须对方法进行更改并再次进行部署。

编辑:

我的客户类如下

class Customer
    {       
        public string CustomerNumber { get; set; }
        public string Title { get; set; }
        public string county { get; set; }
        public string firstname { get; set; }
        public string lastname { get; set; }
        public string companyname { get; set; }
        public string AddressOne { get; set; }
        public string AddressTwo { get; set; }
        public string AddressThree { get; set; }
        public string city { get; set; }
        public string postcode { get; set; }
        public string country { get; set; }
        public string email { get; set; }
        public string RegisteredStore { get; set; }
        public string mailable { get; set; }
        public string rentable { get; set; }
        public string emailable { get; set; }
        public string JoinDate { get; set; }
        public string CustomerExternalID { get; set; }
        public string customergender { get; set; }
        public string dateofbirth { get; set; }
        public string homenumber { get; set; }
        public string Mobile { get; set; }       

        //Custom Fields
        public string CurrencyRef { get; set; }
        public string InvitationStatus { get; set; }
        public string LastMailDate { get; set; }
        public string LastOrderDate { get; set; }
        public string NearestShop { get; set; }
        public string NearestShopDistance { get; set; }
        public string Region { get; set; }       
        public string ShopperType { get; set; }
    }

使用XElement我正在为客户创建xml,但是当在自定义字段中添加任何新字段时,我必须在代码中进行更改以获得所需的xml输出。

1 个答案:

答案 0 :(得分:0)

将对象转换为XML称为“对象序列化” - 获取内存中对象并将其转换为可写入磁盘或通过网络发送的XML的过程。任何对象都可以序列化(转换为XML或JSON)。

这是一个指向如何在C#中执行此操作的教程的链接: http://support.microsoft.com/kb/815813