Search code examples
c#.netxmlserializationxml-serialization

C# XmlSerialization: Serialize string with attribute


I want to serialize the following from C# classes/structures into xml:

XML sample:

<xml>
   <somename id="bla">content</somename>
</xml>

How can I achieve, that a string has an additional attribute called id?


Solution

  • I would use something like this:

        [XmlRoot(ElementName="somename")]
        public class Somename {
            [XmlAttribute(AttributeName="id")]
            public string Id { get; set; }
            [XmlText]
            public string Text { get; set; }
        }
    
        [XmlRoot(ElementName="xml")]
        public class Xml {
            [XmlElement(ElementName="somename")]
            public Somename Somename { get; set; }
        }
    

    Actually you can use this tool https://xmltocsharp.azurewebsites.net/