Hello ,
I have a class which I serialize using XMLSerializer.
This class has public properties which are based on other interfaces.
Because of this I am unable to serialize the object.
Error : There was an error reflecting the type XXXX
Is there any way to serialize this object w/o moving away from Interface
based classes.
Many Thanks!
Eg.
//=========Interfaces===============
public interface IActor
{
[XmlElement("name")]
string Name { get; set; }
[XmlElement("agent")]
IAgent Agent { get; set; }
}
public interface IAgent
{
[XmlElement("rate")]
double Rate { get; set; }
}
//=========Classes===============
[XmlRoot("actor")]
public class Actor : IActor
{
private string name;
[XmlElement("name")]
public string Name
{
get { return name; }
set { name = value; }
}
private IAgent agent;
[XmlElement("broker")]
public IAgent Agent
{
get { return agent; }
set { agent = value; }
}
//other customer methods
}
public class Agent : IAgent
{
private double rate;
[XmlElement("rate")]
public double Rate
{
get { return rate; }
set { rate = value; }
}
}
//============Test===============
[STAThread]
public static void Main()
{
XmlSerializer s;
TextWriter w;
#region actor
IActor actor = new Actor();
actor.Name = "Bob";
IAgent agent = new Agent();
agent.Rate = 12.34D;
actor.Agent = agent;
// Serialization
s = new XmlSerializer(typeof (Actor));
w = new StreamWriter(@"c:\list.xml");
s.Serialize(w, actor);
w.Close();
#endregion actor
Console.ReadLine();
}