我需要创建如下所示的
XML:
<record id="100000000000000000" type="Message"> ...a bunch of xml ... </record>
相反,使用我正在使用的FSsharp代码,我得到了这个:
<record> <type>Message</type> <id>118448</id> ...a bunch of xml.... </record>
这是我目前正在做的事情:
type record( id:int,sr:sender,recipients: recipient array,atts : attachment array,con : conversation,madeDate : creation) = let mutable id: int = id let mutable typ = "Message" let mutable creation = madeDate let mutable sender = sr let mutable recipients = recipients let mutable conversation = con let mutable attachments = atts public new() = record( -1,sender(-1,"Joe","Plumber","Joe@plumber.com"),Array.empty,conversation(),creation()) [<XmlElement("type")>] member this.Type with get() = typ and set v = typ <- v [<XmlElementAttribute("id")>] member this.Id with get() = id and set v = id <- v [<XmlElement("creation")>] member this.Creation with get() = creation and set v = creation <- v [<XmlElement("sender")>] member this.Sender with get() = sender and set v = sender <- v [<XmlArrayAttribute("recipients")>] [<XmlArrayItem(typeof<recipient>,ElementName = "recipient")>] member this.Recipients with get() = recipients and set v = recipients <- v [<XmlElement("conversation_info")>] member this.Conversation with get() = conversation and set v = conversation <- v [<XmlArrayAttribute("attachments")>] [<XmlArrayItem(typeof<attachment>,ElementName = "attachment")>] member this.Attachments with get() = attachments and set v = attachments <- v
解决方法
我想你想要XmlAttributeAttribute而不是XmlElementAttribute.
注意
[<XmlElement>]
和
[<XmlElementAttribute>]
是一回事(就像C#一样).