public LogMessageFilter(Stream stream)
 {
     byte version = stream.ReadNextByte();
     switch (version)
     {
         case 1:
             FilterLevel = (FilterLevel)stream.ReadNextByte();
             if (stream.ReadBoolean())
                 TimeFilter = new TimestampMatching(stream);
             if (stream.ReadBoolean())
                 Classification = new EnumMatchingFlags(stream);
             if (stream.ReadBoolean())
                 Level = new EnumMatchingFlags(stream);
             if (stream.ReadBoolean())
                 Flags = new EnumMatchingFlags(stream);
             if (stream.ReadBoolean())
                 Assembly = new StringMatching(stream);
             if (stream.ReadBoolean())
                 Type = new StringMatching(stream);
             if (stream.ReadBoolean())
                 RelatedType = new StringMatching(stream);
             if (stream.ReadBoolean())
                 StackDetails = new StackDetailsMatching(stream);
             if (stream.ReadBoolean())
                 StackTraceDetails = new StackTraceMatching(stream);
             if (stream.ReadBoolean())
                 EventName = new StringMatching(stream);
             if (stream.ReadBoolean())
                 MessageText = new StringMatching(stream);
             if (stream.ReadBoolean())
                 DetailsText = new StringMatching(stream);
             if (stream.ReadBoolean())
                 ExceptionText = new StringMatching(stream);
             break;
         default:
             throw new VersionNotFoundException();
     }
 }
 /// <summary>
 /// Loads the token from a stream
 /// </summary>
 /// <param name="stream">the stream to load from</param>
 public void Load(Stream stream)
 {
     byte version = stream.ReadNextByte();
     switch (version)
     {
         case 1:
             CanWrite = stream.ReadBoolean();
             CanRead = stream.ReadBoolean();
             IsAdmin = stream.ReadBoolean();
             break;
         default:
             throw new VersionNotFoundException("Could not interpret version");
     }
 }