KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I have a couple extension methods that handle serialization of my classes, and since it can be a time consuming process, they are created once per class, and handed out by this method. public static XmlSerializer GetSerializerFor(Type typeOfT) { if (!serializers.ContainsKey(typeOfT)) { var xmlAttributes = new XmlAttributes(); var xmlAttributeOverrides = new XmlAttributeOverrides(); System.Diagnostics.Debug.WriteLine(string.Format("XmlSerializerFactory.GetSerializerFor(typeof({0}));", typeOfT)); xmlAttributes.Xmlns = false; xmlAttributeOverrides.Add(typeOfT, xmlAttributes); var newSerializer = new XmlSerializer(typeOfT, xmlAttributeOverrides); serializers.Add(typeOfT, newSerializer); } return serializers[typeOfT]; } This is called by the extension method .Serialize() public static XElement Serialize(this object source) { try { var serializer = XmlSerializerFactory.GetSerializerFor(source.GetType()); var xdoc = new XDocument(); using (var writer = xdoc.CreateWriter()) { serializer.Serialize(writer, source, new XmlSerializerNamespaces(new[] { new XmlQualifiedName("", "") })); } return (xdoc.Document != null) ? xdoc.Document.Root : new XElement("Error", "Document Missing"); } catch (Exception x) { return new XElement("Error", x.ToString()); } } Unfortunately, when Serializing classes that are auto-generated, they have the attribute XmlTypeAttribute(Namespace="http://tempuri.org/") applied to them. This causes the deserialization by the the non-auto-generated counterparts to fail. I need the serializer to completely ignore and not apply the namespace, but what I have written in the first block of code doesn't seem to remove it, I still end up with xml like this <Note> <ID xmlns="h
Tags (comma-separated)
Save Edits
Cancel