Serialisierung Fehler: es wurde ein Fehler reflektierendes

Ich habe zwei Klassen: ServiceTrigger und ServiceCalendar.

Wenn ich serialisieren model.Triggers ich bin immer eine Ausnahme, die sagen:

Nicht serialisieren Element 'yyy.ServiceTrigger.ServiceDaysOfWeek' des Typs
'System.Sammlungen.Generisches.IEnumerable`1[[JJJJ.ServiceCalendar, yyy.ChangeAD, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]',
siehe innere Ausnahme für mehr details."}

Erstellt habe ich eine IEnumerable<ServiceTrigger>:

IEnumerable<ServiceTrigger> serviceTriggers = model.Triggers;
XDocument xDoc = SerializationUtil.Serialize(model.Triggers);

Ersten Klasse ist wie folgt:

[DataContract]
public class ServiceTrigger
{   
    [DataMember(Name = "triggerID")]
    public long TriggerID { get; set; }

    [DataMember(Name = "name")]
    public string Name { get; set; }

    [DataMember(Name = "dateStart")]
    public string DateStart { get; set; }

    [DataMember(Name = "code")]
    public string Code { get; set; }

    [DataMember(Name = "isActive")]
    public bool IsActive { get; set; }

    [DataMember(Name = "dateFrom")]
    public string DateFrom { get; set; }

    [DataMember(Name = "dateTo")]
    public string DateTo { get; set; }  

    [DataMember(Name = "currentState")]
    public string CurrentState { get; set; }

    [DataMember(Name = "daysOfWeek")]
    public IEnumerable<ServiceCalendar> ServiceDaysOfWeek { get; set; } 

    [DataMember(Name = "monthsOfYear")]
    public IEnumerable<ServiceCalendar> MonthsOfYear { get; set; }

    [DataMember(Name = "daysOfMonth")]
    public IEnumerable<ServiceCalendar> DaysOfMonth { get; set; } 
}

Zweiten Klasse ist wie folgt:

[DataContract]
public class Calendar
{
    [DataMember(Name = "id")]
    public int Id { get; set; }

    [DataMember(Name = "name")]
    public string Name { get; set; }

    [DataMember(Name = "code")]
    public string Code { get; set; }

    [DataMember(Name = "isActive")]
    public bool IsActive { get; set; }
)

Meine Serialisierung der Klasse ist wie folgt:

public static class SerializationUtil
{
    public static T Deserialize<T>(XDocument doc)
    {
        XmlSerializer xmlSerializer = new XmlSerializer(typeof(T));

        using (var reader = doc.Root.CreateReader())
        {
            return (T)xmlSerializer.Deserialize(reader);
        }
    }

    public static XDocument Serialize(this object obj)
    {
        XmlSerializer xmlSerializer = new XmlSerializer(obj.GetType());

        XDocument doc = new XDocument();
        using (var writer = doc.CreateWriter())
        {
            xmlSerializer.Serialize(writer, obj);
        }

        return doc;
    }
}
Sie benötigen, um fix die Formatierung Ihres Beitrags. Kommentare wie "Meine Serialisierung Klasse ist wie diese" sollte nicht in einen code-block, macht es schwer zu Lesen. Wo genau sind Sie immer die Ausnahme? Können Sie bitte die VOLLSTÄNDIGE Ausnahme?
Nicht serialisieren Element 'yyy.ServiceTrigger.ServiceDaysOfWeek' des Typs 'System.Sammlungen.Generisches.IEnumerable`1[[JJJJ.ServiceCalendar, yyy.ChangeAD, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]", siehe innere Ausnahme für mehr details."}
Nicht serialisieren Mitglied yyy.ServiceTrigger.ServiceDaysOfWeek des Typs System.Sammlungen.Generisches.IEnumerable`1[yyy.ServiceCalendar, yyy, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], weil es ist eine Schnittstelle."
mögliche Duplikate von: stackoverflow.com/questions/1333864/...
Die exception sagt dir, "Siehe innere Ausnahme", so dass Sie brauchen, um sich auf die innere Ausnahme. Bitte fügen Sie die Nachricht von der inneren Ausnahme zu der Frage, wie gut.

InformationsquelleAutor user2264703 | 2013-04-12

Schreibe einen Kommentar