Changeset 2593


Ignore:
Timestamp:
3/30/2012 8:16:30 AM (2 years ago)
Author:
lowjoel
Message:

Allow log entries to be serialized to XML too.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/eraser6/XmlTaskLists/Eraser.Util/Logger.cs

    r2516 r2593  
    2828using System.Threading; 
    2929using System.Runtime.Serialization; 
     30using System.Xml; 
     31using System.Xml.Serialization; 
    3032using System.Security.Permissions; 
     33using System.IO; 
    3134 
    3235namespace Eraser.Util 
     
    6770    /// </summary> 
    6871    [Serializable] 
    69     public struct LogEntry : ISerializable 
     72    public struct LogEntry : ISerializable, IXmlSerializable 
    7073    { 
    7174        #region Serialization code 
     
    8487            info.AddValue("Timestamp", Timestamp); 
    8588            info.AddValue("Message", Message); 
     89        } 
     90 
     91        public System.Xml.Schema.XmlSchema GetSchema() 
     92        { 
     93            return null; 
     94        } 
     95 
     96        public void ReadXml(XmlReader reader) 
     97        { 
     98            LogLevel level; 
     99            DateTime timestamp; 
     100            if (!Enum.TryParse<LogLevel>(reader.GetAttribute("level"), out level)) 
     101                throw new InvalidDataException(); 
     102            if (!DateTime.TryParse(reader.GetAttribute("timestamp"), out timestamp)) 
     103                throw new InvalidDataException(); 
     104 
     105            Level = level; 
     106            Timestamp = timestamp; 
     107            Message = reader.Value; 
     108        } 
     109 
     110        public void WriteXml(XmlWriter writer) 
     111        { 
     112            writer.WriteAttributeString("level", Level.ToString()); 
     113            writer.WriteAttributeString("timestamp", Timestamp.ToString()); 
     114            writer.WriteString(Message); 
    86115        } 
    87116        #endregion 
Note: See TracChangeset for help on using the changeset viewer.