Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- You will need wrapper classes:
- public class SomeIntInfo
- {
- [XmlAttribute]
- public int Value { get; set; }
- }
- public class SomeStringInfo
- {
- [XmlAttribute]
- public string Value { get; set; }
- }
- public class SomeModel
- {
- [XmlElement("SomeStringElementName")]
- public SomeStringInfo SomeString { get; set; }
- [XmlElement("SomeInfoElementName")]
- public SomeIntInfo SomeInfo { get; set; }
- }
- or a more generic approach if you prefer:
- public class SomeInfo<T>
- {
- [XmlAttribute]
- public T Value { get; set; }
- }
- public class SomeModel
- {
- [XmlElement("SomeStringElementName")]
- public SomeInfo<string> SomeString { get; set; }
- [XmlElement("SomeInfoElementName")]
- public SomeInfo<int> SomeInfo { get; set; }
- }
- And then:
- class Program
- {
- static void Main()
- {
- var model = new SomeModel
- {
- SomeString = new SomeInfo<string> { Value = "testData" },
- SomeInfo = new SomeInfo<int> { Value = 5 }
- };
- var serializer = new XmlSerializer(model.GetType());
- serializer.Serialize(Console.Out, model);
- }
- }
- will produce:
- <?xml version="1.0" encoding="ibm850"?>
- <SomeModel xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
- <SomeStringElementName Value="testData" />
- <SomeInfoElementName Value="5" />
- </SomeModel>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement