Прочитать на английском

Поделиться через


ActivityValidator.Validate(ValidationManager, Object) Метод

Определение

Проверяет, что заданное действие допустимо.

public override System.Workflow.ComponentModel.Compiler.ValidationErrorCollection Validate (System.Workflow.ComponentModel.Compiler.ValidationManager manager, object obj);

Параметры

manager
ValidationManager

Объект ValidationManager, связанный с проверкой.

obj
Object

Объект Activity, подлежащий проверке.

Возвращаемое значение

ValidationErrorCollection

Коллекция ValidationErrorCollection, содержащая все ошибки и предупреждения, полученные в ходе проверки.

Примеры

Следующий пример показывает, как переопределить метод Validate для объекта ActivityValidator, который используется для пользовательского действия с единственным свойством зависимостей с именем Msg типа String. Проверяющий элемент удостоверяется, что свойство Msg задано. Если оно не задано, компилятор выводит ошибку при вызове метода Validate на объекте ActivityValidator, и компиляция завершается с ошибкой.

public override ValidationErrorCollection Validate(ValidationManager manager, object obj)
{
    // Invoke the base class method implementation to
    // perform default validation.
    ValidationErrorCollection errors = base.Validate(manager, obj);

    // Make sure there is an activity instance.
    ConsoleWriteLineActivity crw = obj as ConsoleWriteLineActivity;
    if (crw == null)
    {
        throw new InvalidOperationException();
    }

    // If the activity has no parent then this validation
    // is occurring during the compilation of the activity
    // and not during the hosting or creation of an
    // activity instance.
    if (crw.Parent == null)
    {
        // Can skip the rest of the validation because
        // it deals with the hosting and the creation
        // of the activity.
        return errors;
    }

    // Msg is required. Add a validation error if there is no
    // Msg specified or Msg is not bound to another property.
    if (string.IsNullOrEmpty(crw.Msg) &&
        crw.GetBinding(ConsoleWriteLineActivity.MsgProperty) == null)
    {
        errors.Add(new ValidationError("Msg is required", 100, false, "Msg"));
    }

    return errors;
}

Комментарии

Этот метод вызывает метод ValidateProperties для проверки свойств действия Activity.

Этот метод проверяет только уникальность имени Name для действия Activity, если действие Activity не является корневым действием Activity.

Применяется к

Продукт Версии
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8