我是序列化的新手,我一生都无法弄清楚如何解决此异常。

我有一个具有以下结构的对象

[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类型,则可以正常工作...

有任何想法吗?

最佳答案

有一个小技巧,您可以尝试:

Serializing an interface

关于c# - 序列化对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2749103/

10-11 01:32