我是序列化的新手,我不能为我的生活弄清楚如何解决这个例外我得到...
我有一个具有以下结构的对象
[XmlRoot("MaxCut2")]
public class MaxCut2File : IFile
{
public MaxCut2File()
{
MyJob = new Job();
Job.Reference = "MyRef";
}
[XmlElement("JobDetails", typeof(Job))]
public IJob MyJob
{
get;
set;
}
}
一个接触面......
public interface IJob
{
string Reference { get; set; }
}
和一个班级
[Serializable()]
public class Job : IJob
{
[XmlElement("Reference")]
public string Reference { get; set; }
}
当我尝试序列化MaxCut2File对象的实例时,我收到错误
{“无法序列化'MaxCut2BL.Interfaces.IJob'类型的成员'MaxCut2File.MaxCut2File.MyJob',请参阅内部异常以获取更多详细信息。”} “有一个错误反映了'MaxCut2File.MaxCut2File'类型。”
但是,如果我将我的属性MyJob从IJob类型更改为Job类型,它可以正常工作......
有什么想法吗?
答案 0 :(得分:2)
您无法序列化界面。串行器如何知道将使用哪种类型?你只是说有一个界面。
答案 1 :(得分:2)
有一个小技巧你可以尝试一下:
答案 2 :(得分:0)
尝试添加:
public interface IJob : ISerializable