繁体   English   中英

序列化对象

[英]Serialize Object

我是序列化的新手,我不能为我的生活弄清楚如何解决这个例外我得到...

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

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

有任何想法吗?

您无法序列化界面。 串行器如何知道将使用哪种类型? 你只是说有一个界面。

有一个小技巧你可以尝试一下:

序列化接口

尝试添加:

public interface IJob : ISerializable

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM