1 namespace System.Workflow.ComponentModel.Compiler 2 { 3 #region Imports 4 5 using System; 6 using System.Reflection; 7 using System.Collections; 8 using System.Collections.Generic; 9 using System.ComponentModel.Design.Serialization; 10 11 #endregion 12 13 [Obsolete("The System.Workflow.* types are deprecated. Instead, please use the new types from System.Activities.*")] 14 public sealed class ValidationManager : IServiceProvider 15 { 16 #region Data members 17 18 private Hashtable hashOfValidators = new Hashtable(); 19 private IServiceProvider serviceProvider = null; 20 private ContextStack context = null; 21 private bool validateChildActivities = true; 22 23 #endregion 24 25 #region Constructors 26 ValidationManager(IServiceProvider serviceProvider)27 public ValidationManager(IServiceProvider serviceProvider) 28 : 29 this(serviceProvider, true) 30 { 31 } 32 ValidationManager(IServiceProvider serviceProvider, bool validateChildActivities)33 public ValidationManager(IServiceProvider serviceProvider, bool validateChildActivities) 34 { 35 this.serviceProvider = serviceProvider; 36 this.validateChildActivities = validateChildActivities; 37 } 38 39 #endregion 40 41 #region Public members 42 43 public ContextStack Context 44 { 45 get 46 { 47 if (this.context == null) 48 this.context = new ContextStack(); 49 50 return this.context; 51 } 52 } 53 54 public bool ValidateChildActivities 55 { 56 get 57 { 58 return this.validateChildActivities; 59 } 60 } 61 GetValidators(Type type)62 public Validator[] GetValidators(Type type) 63 { 64 if (this.hashOfValidators.Contains(type)) 65 return ((List<Validator>)this.hashOfValidators[type]).ToArray(); 66 67 List<Validator> validators = new List<Validator>(); 68 foreach (Validator validator in ComponentDispenser.CreateComponents(type, typeof(ActivityValidatorAttribute))) 69 validators.Add(validator); 70 71 this.hashOfValidators[type] = validators; 72 return validators.ToArray(); 73 } 74 75 #endregion 76 77 #region IServiceProvider Members 78 GetService(Type serviceType)79 public object GetService(Type serviceType) 80 { 81 return this.serviceProvider.GetService(serviceType); 82 } 83 84 #endregion 85 } 86 } 87