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