I'm passing classes through a web service. There are some properties on the
class that I don't need to be serialized and would like to remove them for
performance (size) reasons so I've marked them with the
System.Xml.Serialization.SoapIgnore attribute.
I recompiled and checked what was being sent over the wire. The ignored
property is still showing up in the xml serialization!
I've attached some sample code that uses XmlSerializer and I get the same
behavior as thru the web service. (which, I suppose should make a lot of
sense)
Any ideas?
Thanks,
-Ben
// test method
private void DoSerialize()
{
TestClass temp=new TestClass();
XmlSerializer serializer=new XmlSerializer(typeof(TestClass));
StringBuilder sb=new StringBuilder();
StringWriter stream=new StringWriter(sb);
serializer.Serialize(stream, temp);
MessageBox.Show(sb.ToString());
}
// class to be serialized
using System;
using System.Xml.Serialization;
namespace SoapIgnoreTest
{
/// <summary>
/// Summary description for TestClass.
/// </summary>
public class TestClass
{
public TestClass()
{
}
public string NotIgnored
{
get
{
return "NotIgnored";
}
set
{
}
}
[SoapIgnore]
public string Ignored
{
get
{
return "Ignored";
}
set
{
}
}
}
}
Benjamin,
> I'm passing classes through a web service. There are some properties on the
> class that I don't need to be serialized and would like to remove them for
[quoted text clipped - 3 lines]
> I recompiled and checked what was being sent over the wire. The ignored
> property is still showing up in the xml serialization!
SoapIgnoreAttribute is only taken into account if you're using SOAP RPC
encoding, which it seems you're not using. For literal encoding (which is
the default), use [XmlIgnore] instead.

Signature
Tomas Restrepo
tomasr@mvps.org
Benjamin Day - 09 Sep 2004 03:39 GMT
Thanks. That was exactly what I needed.
I was hoping for a sec that I'd found a bug in the serialization namespace.
:)
-Ben
"Tomas Restrepo (MVP)" wrote:
> Benjamin,
>
[quoted text clipped - 10 lines]
> encoding, which it seems you're not using. For literal encoding (which is
> the default), use [XmlIgnore] instead.