day.ical.ical을 사용하여 iCal을 deserialize, 속성을 찾을 수 없습니다

StackOverflow https://stackoverflow.com//questions/9629016

  •  09-12-2019
  •  | 
  •  

문제

iCal 파일을 원하지 않게하고 컬렉션을 사용자 정의 POCO로 매핑하려고합니다.문제는 속성이 저장되는 위치가 확실하지 않다는 것입니다.

여기에 deserialization 방법

public static IICalendarCollection Deserialize(String iCalUri)
{

    var wc = new WebClient();
    var result = wc.DownloadString(iCalUri);

    using (var memoryStream = new MemoryStream(Encoding.UTF8.GetBytes(result)))
    {
        var serializer = new iCalendarSerializer();
        var collection = (iCalendarCollection)serializer.Deserialize(memoryStream, Encoding.UTF8);
        return collection;
    }
}
.

그런 다음 내 서비스에서 POCO에 속성을 매핑하려고하지만 속성을 찾을 수 없습니다.

var url = string.Format(GoogleICalUrl, calendarID);
var feed = iCalUtility.Deserialize(url);

foreach(var e in feed)
{
    calendarModel.title = e.WhereTheHellAreThePropertiesKept;
}
.

누구든지 iCalendarCollection를 통해 루프를 반복하고 모든 속성을 가져올 수있는 올바른 방법을 알고 있습니까?

나는 DDay 웹 사이트를 확인했지만 하루 종일 내려졌습니다.

도움이 되었습니까?

해결책

After some digging, it turns out that IICalendarCollection has a nested Event collection that needs to be parsed as follows.

var url = string.Format(GoogleICalUrl, calendarID);
var feed = iCalUtility.Deserialize(url);

foreach (var ev in feed.SelectMany(e => e.Events))
{
    calendarModel.Add(new CalendarModel {description = ev.Description,
                                         title = ev.Summary});
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top