public override object Deserialize(TextReader tr)
        {
            if (tr == null)
            {
                return(null);
            }

            using (tr)
            {
                var ctx      = SerializationContext;
                var contents = tr.ReadToEnd();

                using (var normalized = TextUtil.Normalize(contents, ctx))
                {
                    var lexer  = new IcalLexer(normalized);
                    var parser = new IcalParser(lexer);

                    // Parse the iCalendar(s)!
                    var iCalendars = parser.icalendar(SerializationContext);

                    // Return the parsed iCalendar(s)
                    return(iCalendars);
                }
            }
        }
        public override object Deserialize(TextReader tr)
        {
            if (tr == null)
            {
                return(null);
            }

            using (tr)
            {
                var ctx      = SerializationContext;
                var contents = tr.ReadToEnd();

                using (var normalized = TextUtil.Normalize(contents, ctx))
                {
                    // Create a lexer for our text stream
                    var lexer  = new IcalLexer(normalized);
                    var parser = new IcalParser(lexer);

                    // Get a serializer factory from our serialization services
                    var sf = GetService <ISerializerFactory>();

                    // Get a calendar component factory from our serialization services
                    var cf = GetService <ICalendarComponentFactory>();

                    var parsedComponent = parser.component(ctx, sf, cf, null);
                    return(parsedComponent);
                }
            }
        }
Beispiel #3
0
 public override object Deserialize(TextReader tr)
 {
     using (tr)
     {
         var lexer  = new IcalLexer(tr);
         var parser = new IcalParser(lexer);
         var p      = parser.parameter(SerializationContext, null);
         return(p);
     }
 }