Use EmitDefaultValue = false
to skip default values in XML:
[DataContract(Name = "response", Namespace = "http://domain.com/name")]
public class MyResponseClass
{
[DataMember(Name = "count", IsRequired = true, Order = 0, EmitDefaultValue = false)]
public int Count { get; set; }
[DataMember(Name = "info", IsRequired = false, Order = 1, EmitDefaultValue = false)]
public InfoClass Info { get; set; }
[DataMember(Name = "metadata", IsRequired = false, Order = 2, EmitDefaultValue = false)]
public MetadataList Metadatas { get; set; }
}
to remove xmlns:i="http://www.w3.org/2001/XmlSchema-instance"
you have to use for example Replace()
like in the following example
public void Write(string filePath, MyResponseClass myResponse)
{
var serializer = new DataContractSerializer(typeof(MyResponseClass));
var sb = new StringBuilder();
using (var writer = new StringWriter(sb))
using (var xmlWriter = XmlWriter.Create(writer))
{
serializer.WriteObject(xmlWriter, myResponse);
}
using (StreamWriter stream = new StreamWriter(filePath))
{
sb = sb.Replace(" xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\"", "");
stream.Write(sb);
}
}
with regards :)