2010-05-01 133 views
3

我是新来的系列化,我不能为我的生活弄清楚如何解决这个异常我正在......序列化对象

我有具有以下结构的对象

[XmlRoot("MaxCut2")] 
public class MaxCut2File : IFile 
{ 
    public MaxCut2File() 
    { 
     MyJob = new Job(); 
     Job.Reference = "MyRef"; 
    } 

    [XmlElement("JobDetails", typeof(Job))] 
    public IJob MyJob 
    { 
     get; 
     set; 
    }  
} 

的inteferface ...

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类型的作业类型,它工作正常...

任何想法?

回答

0

尝试增加:

public interface IJob : ISerializable 
+0

我想,但我仍然得到同样的错误;-( – 2010-05-01 06:47:53

2

你不能序列化的接口。序列化程序将如何知道将使用哪种类型?你只是说有一个接口。