示例#1
0
文件: main.cs 项目: bakera/Test
        public void WriteEvent(Object sender, ParserEventArgs e)
        {
            if(e.Level >= myEventLevel){
                Console.Write("[{0}] ", e.Level);
                Console.Write("({0}) ", e.Message.GetType().Name);
                if(!string.IsNullOrEmpty(e.Message.Message)) Console.WriteLine(e.Message.Message);
                if(sender is RedFaceParser && e.Level > EventLevel.Information){
                    if(e.OriginalSender != null){
                        Console.WriteLine(" {0}:", e.OriginalSender.GetType().Name);
                    }
                    RedFaceParser parser = (RedFaceParser)sender;
                    Console.Write(" {0}", parser.InputStream.GetRecentString(40));
                    string allstr = parser.InputStream.GetAllString();
                    string[] lines = allstr.Split('\n');
                    Console.Write(" ({0}行目", lines.Length);
                    Console.Write(" {0}文字目)", lines[lines.Length-1].Length);

                    Console.WriteLine();
                }
            }
        }
示例#2
0
 // イベントを発生します。
 protected virtual void OnParserEventRaised(ParserEventArgs e)
 {
     OnParserEventRaised(this, e);
 }
示例#3
0
 protected virtual void OnParserEventRaised(Object sender, ParserEventArgs e)
 {
     if(ParserEventRaised != null){
         ParserEventRaised(this, e);
     }
 }
示例#4
0
 // ParserMessageオブジェクトを指定して、メッセージを通知します。
 protected virtual void OnMessageRaised(ParserMessage message)
 {
     ParserEventArgs args = new ParserEventArgs(message);
     OnParserEventRaised(args);
 }