다음을 통해 공유


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입니다.

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;
}
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의 고유성에 대한 유효성만 검사합니다.

적용 대상