开发者

How do I prevent DDay.ical ics files from repeating duplication events during SerializeToString function call

开发者 https://www.devze.com 2023-03-29 05:29 出处:网络
Hope some one can help.Using the DDay.iCal version 1.0.1.490 with .net version 2 I get duplicate events events after calling the SerilizeToString method.

Hope some one can help. Using the DDay.iCal version 1.0.1.490 with .net version 2 I get duplicate events events after calling the SerilizeToString method.

Example Code:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DDay.iCal;
using DDay.iCal.Serialization.iCalendar;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            iCalendar iCal = new iCalendar();
            Event evt = iCal.Create<Event>();
            Uri eventLink = new Uri("http://middlebury.edu";);
            evt.IsAllDay = false;

           evt.Start = new iCalDateTime(DateTime.Parse("2011-08-11"));
           evt.Duration = new TimeSpan(2, 0, 0);
           evt.Location = "Test";
           evt.Summary = "Breakfast";
           evt.Url = eventLink;
           evt.Description = "Sausage Links" + "\n" + "Pancakes" + "\n";

          iCal.Events.Add(evt);

          iCalendarSerializer serialize开发者_运维技巧r = new iCalendarSerializer(iCal);

          string result = serializer.SerializeToString(iCal);
      }
   }
}


The line Event evt = iCal.Create<Event>() creates a new event, adds it to the calendar's event collection, and returns it. Later, you manually add the same event to the calendar's event collection: iCal.Events.Add(evt)

I was doing the same thing, not realizing that the Create() method adds the event to the calendar. Either use a standard constructor to initialize the event, Event evt = new Event(), or remove the manual Add() to the calendar's event collection.

0

精彩评论

暂无评论...
验证码 换一张
取 消