public static ValidationResults Validate(Activity toValidate, ValidationSettings settings)
        {
            if (toValidate == null)
            {
                throw Microsoft.CoreWf.Internals.FxTrace.Exception.ArgumentNull("toValidate");
            }

            if (settings == null)
            {
                throw Microsoft.CoreWf.Internals.FxTrace.Exception.ArgumentNull("settings");
            }

            if (toValidate.HasBeenAssociatedWithAnInstance)
            {
                throw Microsoft.CoreWf.Internals.FxTrace.Exception.AsError(new InvalidOperationException(SR.RootActivityAlreadyAssociatedWithInstance(toValidate.DisplayName)));
            }

            if (settings.PrepareForRuntime && (settings.SingleLevel || settings.SkipValidatingRootConfiguration || settings.OnlyUseAdditionalConstraints))
            {
                throw Microsoft.CoreWf.Internals.FxTrace.Exception.Argument("settings", SR.InvalidPrepareForRuntimeValidationSettings);
            }

            InternalActivityValidationServices validator = new InternalActivityValidationServices(settings, toValidate);

            return(validator.InternalValidate());
        }
 internal InternalActivityValidationServices(ValidationSettings settings, Activity toValidate)
 {
     _settings       = settings;
     _rootToValidate = toValidate;
     _environment    = settings.Environment;
 }