我有兩個類:ServiceTrigger
和ServiceCalendar
。序列化錯誤:有反映類型的錯誤
當我序列model.Triggers
我得到一個異常說:
Cannot serialize member 'yyy.ServiceTrigger.ServiceDaysOfWeek' of type
'System.Collections.Generic.IEnumerable`1[[yyyy.ServiceCalendar, yyy.ChangeAD, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]',
see inner exception for more details."}
我已經創建了一個IEnumerable<ServiceTrigger>
:
IEnumerable<ServiceTrigger> serviceTriggers = model.Triggers;
XDocument xDoc = SerializationUtil.Serialize(model.Triggers);
頭等艙是這樣的:
[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; }
}
二等是這樣的:
[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; }
)
我的序列化類是這樣的:
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;
}
}
您需要修復您的文章的格式異常。像「我的序列化類是這樣的」的評論不應該在代碼塊中,這使得它很難閱讀。你究竟在哪裏得到例外?你可以請發佈完整的例外? – tnw
無法序列類型的成員 'yyy.ServiceTrigger.ServiceDaysOfWeek' 'System.Collections.Generic.IEnumerable'1 [[yyyy.ServiceCalendar,yyy.ChangeAD,版本= 1.0.0.0,文化=中性公鑰=空]]',看到內部異常的更多細節。「} – user2264703
無法序列類型System.Collections.Generic.IEnumerable'1的構件yyy.ServiceTrigger.ServiceDaysOfWeek [yyy.ServiceCalendar,YYY,版本= 1.0.0.0,文化=中性公鑰=空] ]因爲它是一個接口。「 – user2264703