using System; using System.Collections.Generic; using System.Reflection; using Server; namespace Server { public delegate void ValidationEventHandler(); public static class ValidationQueue { public static event ValidationEventHandler StartValidation; public static void Initialize() { if ( StartValidation != null ) StartValidation(); StartValidation = null; } } public static class ValidationQueue { private static List m_Queue; static ValidationQueue() { m_Queue = new List(); ValidationQueue.StartValidation += new ValidationEventHandler( ValidateAll ); } public static void Add( T obj ) { m_Queue.Add( obj ); } private static void ValidateAll() { Type type = typeof( T ); if ( type != null ) { MethodInfo m = type.GetMethod( "Validate", BindingFlags.Instance | BindingFlags.Public ); if ( m != null ) { for ( int i = 0; i < m_Queue.Count; ++i ) m.Invoke( m_Queue[i], null ); } } m_Queue.Clear(); m_Queue = null; } } }