87 lines
2.3 KiB
C#
87 lines
2.3 KiB
C#
namespace System.Workflow.ComponentModel.Compiler
|
|
{
|
|
#region Imports
|
|
|
|
using System;
|
|
using System.Reflection;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel.Design.Serialization;
|
|
|
|
#endregion
|
|
|
|
[Obsolete("The System.Workflow.* types are deprecated. Instead, please use the new types from System.Activities.*")]
|
|
public sealed class ValidationManager : IServiceProvider
|
|
{
|
|
#region Data members
|
|
|
|
private Hashtable hashOfValidators = new Hashtable();
|
|
private IServiceProvider serviceProvider = null;
|
|
private ContextStack context = null;
|
|
private bool validateChildActivities = true;
|
|
|
|
#endregion
|
|
|
|
#region Constructors
|
|
|
|
public ValidationManager(IServiceProvider serviceProvider)
|
|
:
|
|
this(serviceProvider, true)
|
|
{
|
|
}
|
|
|
|
public ValidationManager(IServiceProvider serviceProvider, bool validateChildActivities)
|
|
{
|
|
this.serviceProvider = serviceProvider;
|
|
this.validateChildActivities = validateChildActivities;
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Public members
|
|
|
|
public ContextStack Context
|
|
{
|
|
get
|
|
{
|
|
if (this.context == null)
|
|
this.context = new ContextStack();
|
|
|
|
return this.context;
|
|
}
|
|
}
|
|
|
|
public bool ValidateChildActivities
|
|
{
|
|
get
|
|
{
|
|
return this.validateChildActivities;
|
|
}
|
|
}
|
|
|
|
public Validator[] GetValidators(Type type)
|
|
{
|
|
if (this.hashOfValidators.Contains(type))
|
|
return ((List<Validator>)this.hashOfValidators[type]).ToArray();
|
|
|
|
List<Validator> validators = new List<Validator>();
|
|
foreach (Validator validator in ComponentDispenser.CreateComponents(type, typeof(ActivityValidatorAttribute)))
|
|
validators.Add(validator);
|
|
|
|
this.hashOfValidators[type] = validators;
|
|
return validators.ToArray();
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region IServiceProvider Members
|
|
|
|
public object GetService(Type serviceType)
|
|
{
|
|
return this.serviceProvider.GetService(serviceType);
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
}
|