2010-05-01 3 views
3

Je suis nouveau à la sérialisation et je ne peux pas pour la vie de me comprendre comment résoudre cette exception que je reçois ...sérialisation objet

j'ai un objet qui a la structure suivante

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

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

un inteferface ...

public interface IJob 
    {   
     string Reference { get; set; } 
    } 

Et une classe

[Serializable()] 
public class Job : IJob 
{ 
    [XmlElement("Reference")] 
    public string Reference { get; set; } 
} 

Lorsque je tente de sérialiser une instance de l'objet MaxCut2File je reçois une erreur

{ "Impossible de sérialiser membre « MaxCut2File.MaxCut2File.MyJob » de type « MaxCut2BL.Interfaces.IJob », voir exception interne pour plus de détails . "} " Une erreur s'est produite lors de l'affichage du type "MaxCut2File.MaxCut2File". "

Cependant si je change MyJob propriété du type ijob au type d'emploi, il fonctionne très bien ...

Toutes les idées?

Répondre

0

Essayez d'ajouter:

public interface IJob : ISerializable 
+0

J'ai essayé, mais je reçois toujours la même erreur ;-( –

2

Vous ne pouvez pas sérialiser une interface. Comment le sérialiseur pourrait-il savoir quel type sera utilisé? Vous avez simplement dit qu'il y a une interface.

Questions connexes