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.
//=========Interf aces=========== ====
public interface IActor
{
[XmlElement("nam e")]
string Name { get; set; }
[XmlElement("age nt")]
IAgent Agent { get; set; }
}
public interface IAgent
{
[XmlElement("rat e")]
double Rate { get; set; }
}
//=========Classe s============== =
[XmlRoot("actor" )]
public class Actor : IActor
{
private string name;
[XmlElement("nam e")]
public string Name
{
get { return name; }
set { name = value; }
}
private IAgent agent;
[XmlElement("bro ker")]
public IAgent Agent
{
get { return agent; }
set { agent = value; }
}
//other customer methods
}
public class Agent : IAgent
{
private double rate;
[XmlElement("rat e")]
public double Rate
{
get { return rate; }
set { rate = value; }
}
}
//============Tes t============== =
[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(t ypeof (Actor));
w = new StreamWriter(@" c:\list.xml");
s.Serialize(w, actor);
w.Close();
#endregion actor
Console.ReadLin e();
}