ActivityValidator.Validate(ValidationManager, Object) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Проверяет, что заданное действие допустимо.
public:
override System::Workflow::ComponentModel::Compiler::ValidationErrorCollection ^ Validate(System::Workflow::ComponentModel::Compiler::ValidationManager ^ manager, System::Object ^ obj);
public override System.Workflow.ComponentModel.Compiler.ValidationErrorCollection Validate (System.Workflow.ComponentModel.Compiler.ValidationManager manager, object obj);
override this.Validate : System.Workflow.ComponentModel.Compiler.ValidationManager * obj -> System.Workflow.ComponentModel.Compiler.ValidationErrorCollection
Public Overrides Function Validate (manager As ValidationManager, obj As Object) As ValidationErrorCollection
Параметры
- manager
- ValidationManager
Объект ValidationManager, связанный с проверкой.
Возвращаемое значение
Коллекция 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;
}
Public Overrides Function Validate( _
ByVal manager As System.Workflow.ComponentModel.Compiler.ValidationManager, _
ByVal obj As Object) As System.Workflow.ComponentModel.Compiler.ValidationErrorCollection
'Invoke the base class method implementation to
'perform default validation.
Dim errors As ValidationErrorCollection = MyBase.Validate(manager, obj)
'Make sure there is an activity instance.
Dim crw As ConsoleWriteLineActivity = CType(obj, ConsoleWriteLineActivity)
If crw Is Nothing Then
Throw New InvalidOperationException()
End If
'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 Is Nothing Then
'Can skip the rest of the validation because
'it deals with the hosting and the creation
'of the activity.
Return errors
End If
'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) And _
crw.GetBinding(ConsoleWriteLineActivity.MsgProperty) Is Nothing Then
errors.Add(New ValidationError("Msg is required", 100, False, "Msg"))
End If
Return errors
End Function
Комментарии
Этот метод вызывает метод ValidateProperties для проверки свойств действия Activity.
Этот метод проверяет только уникальность имени Name для действия Activity, если действие Activity не является корневым действием Activity.