4

iCalファイルを逆シリアル化してから、コレクションをカスタムPOCOにマップしようとしています。問題は、プロパティがどこに保存されているかわからないことです。

これが逆シリアル化の方法です

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のWebサイトを確認しましたが、1日中ダウンしています。

4

1 に答える 1

2

掘り下げた結果、IICalendarCollection にはネストされた Event コレクションがあり、次のように解析する必要があることがわかりました。

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});
}
于 2012-03-09T04:52:07.630 に答える