Yes, you can override the attributes by passing an XmlAttributeOverrides
object to the constructor if the XmlSerializer when you serialize the
object:
using System;
using System.Text;
using System.Xml;
using System.Xml.Serialization;
public class Test
{
[XmlAttribute("attribute1")]
public string attribute1;
public string foo = "bar";
public Test(){}
}
public class App
{
public static void Main()
{
XmlAttributes attrs = new XmlAttributes();
attrs.XmlIgnore = true;
XmlAttributeOverrides overrides = new XmlAttributeOverrides();
overrides.Add( typeof(Test), attrs );
XmlSerializer ser = new XmlSerializer( typeof(Test), overrides );
XmlTextWriter writer = new XmlTextWriter( "ignore.xml", Encoding.UTF8 );
ser.Serialize( writer, new Test() );
writer.Close();
}
}
Note that you do not want to pass the XmlAttributeOverrides to the
XmlSerializer that dedeserializes the XML doc or attribute1 will be ignored.
HTH,
Christoph
----- Original Message -----
From: "Łukasz Wielek" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Wednesday, May 15, 2002 6:09 AM
Subject: [DOTNET] Dynamic XmlAttributes
I have class :
public Test
{
[XmlAttribute("attribute1")]
public string attribute1;
public Test(){}
/* .... */
}
but attribute attribute1 makes sense only during deserialization of class
Test.
When I serialize this class I don't want this attribute to appear.
Is it possible to dynamically change [XmlAttribute("attribute1")] to
[XmlIgnore] ???
--
WielO
mailto:[EMAIL PROTECTED]
-----------------------------------------------------
You can read messages from the DOTNET archive, unsubscribe from DOTNET, or
subscribe to other DevelopMentor lists at http://discuss.develop.com.
You can read messages from the DOTNET archive, unsubscribe from DOTNET, or
subscribe to other DevelopMentor lists at http://discuss.develop.com.