public CalendarFile Deserialize(Stream inStream) { string foldedContent; // read text from stream (converts UTF-8 to Unicode) using (var reader = new StreamReader(inStream, Encoding.UTF8)) { foldedContent = reader.ReadToEnd(); } // unfold content string unfoldedContent = FoldHelper.UnfoldContent(foldedContent); // parse content and retrieve the object tree var calendar = ObjectSerializer.Deserialize <CalendarFile>(unfoldedContent); return(calendar); }