public void RegisterValueProcessor( ITemplateValueProcessor processor ) { lock ( this ) { foreach ( ITemplateValueProcessor item in ValueProcessors ) { if ( item.GetType().FullName.Equals( processor.GetType().FullName, System.StringComparison.OrdinalIgnoreCase ) ) return; if ( item.Key.Equals( processor.Key, System.StringComparison.OrdinalIgnoreCase ) ) throw new ArgumentException( "You cannot register two ITemplateValueProcessor's with the same key value.", "processor" ); } // Register this engine with the value processor and register // as a value processor for this engine. processor.TemplateEngine = this; ValueProcessors.Add( processor ); } }
public void RemoveValueProcessor( ITemplateValueProcessor processor ) { lock ( this ) { foreach ( ITemplateValueProcessor item in ValueProcessors ) { if ( item.GetType().FullName.Equals( processor.GetType().FullName, System.StringComparison.OrdinalIgnoreCase ) ) { ValueProcessors.Remove( item ); return; } } } }