KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I'm having a hard time trying to figure out a generic extension method that would serialize a given object as SOAP formatted. The actual implementation looks somewhat like this: Foobar.cs [Serializable, XmlRoot("foobar"), DataContract] public class Foobar { [XmlAttribute("foo"), DataMember] public string Foo { get; set; } [XmlAttribute("bar"), DataMember] public string Bar { get; set; } public Foobar() {} } Lipsum.cs [Serializable, XmlRoot("lipsum"), XmlType("lipsum"), DataContract] public class Lipsum { private List<Foobar> lipsum = new List<Foobar>(); [XmlElement("foobar"), DataMember] public List<Foobar> Lipsum { get { return lipsum; } } } } Extensions.cs public static void SerializeToSoap<T>(this Stream target, T source) { XmlTypeMapping xmlTypeMapping = (new SoapReflectionImporter().ImportTypeMapping(typeof(T))); XmlSerializer xmlSerializer = new XmlSerializer(xmlTypeMapping); xmlSerializer.Serialize(target, source); } Program.cs static void Main() { Lipsum lipsum = new Lipsum(); lipsum.Lipsum.Add( new Foobar() { Foo = "Lorem", Bar = "Ipsum" } ); using (MemoryStream persistence = new MemoryStream()) { persistence.SerializeToSoap<Lipsum>(lipsum); Console.WriteLine(Encoding.Default.GetString(persistence.ToArray())); Console.WriteLine(Environment.NewLine); } } EXCEPTION System.InvalidOperationException: Token StartElement in state Epilog would result in an invalid XML document. at System.Xml.XmlTextWriter.AutoComplete(Token token) at System.Xml.XmlTextWriter.WriteStartElement(String prefix, String localName, String ns)
Tags (comma-separated)
Save Edits
Cancel