ActivityValidator.Validate(ValidationManager, Object) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Überprüft, ob die jeweilige Aktivität gültig ist.
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
Parameter
- manager
- ValidationManager
Der der Validierung zugeordnete ValidationManager.
Gibt zurück
Ein ValidationErrorCollection-Objekt, das alle Fehler bzw. Warnungen enthält, die während der Validierung aufgetreten sind.
Beispiele
Im folgenden Beispiel wird gezeigt, wie die Validate-Methode für ein ActivityValidator außer Kraft gesetzt wird, das für eine benutzerdefinierte Aktivität mit einer einzelnen Abhängigkeitseigenschaft namens Msg
vom Typ String verwendet wird. Das benutzerdefinierte Validierungssteuerelement stellt sicher, dass die Msg
-Eigenschaft festgelegt wird. Wurde diese Eigenschaft nicht festgelegt, zeigt der Compiler einen Fehler an, wenn die Validate-Methode vom ActivityValidator aufgerufen wird, und die Kompilierung schlägt fehl.
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
Hinweise
Diese Methode ruft ValidateProperties auf, um die Eigenschaften der Activity zu überprüfen.
Diese Methode überprüft nur die Eindeutigkeit des Name für die Activity, wenn es sich bei der Activity nicht um eine Stamm-Activity handelt.