ActivityValidator.Validate(ValidationManager, Object) 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
지정된 활동이 유효한지 확인합니다.
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의 고유성에 대한 유효성만 검사합니다.