\r
namespace MonoTests.System.Windows.Forms\r
{\r
- class EventLogger\r
+ public class EventLogger\r
{\r
- private ArrayList log;\r
+ public class EventLog : ArrayList\r
+ {\r
+ public bool PrintAdds = false;\r
+ \r
+ new public int Add (object obj)\r
+ {\r
+ if (PrintAdds)\r
+ Console.WriteLine ("{1} EventLog: {0}", obj, DateTime.Now.ToLongTimeString ());\r
+ return base.Add (obj);\r
+ }\r
+ }\r
+ \r
+ private EventLog log;\r
private object instance;\r
- \r
+\r
+ public bool PrintAdds {\r
+ get { return log.PrintAdds; }\r
+ set { log.PrintAdds = value; }\r
+ }\r
+\r
// Tests if all the names in Names are in log with the order given in Names.\r
public bool ContainsEventsOrdered (params string [] Names) \r
{\r
if (item == null) {\r
throw new ArgumentNullException ("item");\r
}\r
- \r
- log = new ArrayList ();\r
+\r
+ log = new EventLog ();\r
\r
Type itemType = item.GetType ();\r
AssemblyName name = new AssemblyName ();\r
AssemblyBuilder assembly = AppDomain.CurrentDomain.DefineDynamicAssembly (name, AssemblyBuilderAccess.RunAndSave);\r
ModuleBuilder module = assembly.DefineDynamicModule ("EventLoggerAssembly", "EventLoggerAssembly.dll");\r
\r
- Type ListType = typeof (ArrayList);\r
+ Type ListType = log.GetType ();\r
\r
TypeBuilder logType = module.DefineType ("Logger");\r
FieldBuilder logField = logType.DefineField ("log", ListType, FieldAttributes.Public);\r