ActivityValidator.Validate(ValidationManager, Object) 方法

定义

验证给定的活动是否有效。Verifies that the given activity is valid.

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

与验证关联的 ValidationManagerThe ValidationManager associated with validation.

obj
Object

要验证的 ActivityThe Activity to be validated.

返回

ValidationErrorCollection

一个 ValidationErrorCollection 对象,其中包含在验证期间发生的任何错误或警告。A ValidationErrorCollection object that contains any errors or warnings that occurred during validation.

示例

下面的示例演示如何重写用于自定义活动的 ValidateActivityValidator 方法,该自定义活动有一个类型为 Msg 的依赖项属性,其名称为 StringThe following example shows how to override the Validate method for an ActivityValidator used for a custom activity that has a single dependency property named Msg of type String. 自定义验证程序可以确保设置了 Msg 属性。The custom validator ensures that the Msg property is set. 如果未设置,则在对 Validate 调用 ActivityValidator 方法时,编译器将显示错误,且编译将失败。If it is not set, the compiler displays an error when the Validate method is called on the ActivityValidator and the compilation fails.

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 的属性。This method calls ValidateProperties to validate the properties of the Activity.

如果 Name 不是根 Activity,则此方法只验证 ActivityActivity 的唯一性。This method only validates the uniqueness of the Name for the Activity if the Activity is not a root Activity.

适用于