Bietet Windows Workflow Foundation eine Möglichkeit, Aktivitäten für Zwecke wie Protokollierung abzufangen oder zu dekorieren? Zum Beispiel um Protokolle für jeden Aktivitätseintrag und -ausgangspunkt zu erstellen (idealerweise einschließlich des Aktivitätsnamens), ohne den gesamten vorhandenen Projektcode zu ändern.Aktivitäten im Windows-Workflow abfangen/dekorieren
Zum Beispiel habe ich einen Workflow mit einer einzigen Aktivität, die "Hallo Welt" druckt. Ohne Änderungen an der XAML-Datei möchte ich den Ein- und Ausgang der Aktivität erfassen. Ich möchte "Hello World Activity" eingeben, bevor Sie die Aktivität eingeben und nachdem die Aktivität "Hello World" gedruckt hat, möchte ich "Completed Hello World Activity" drucken.
Bietet Windows Workflow einen Mechanismus zum Einhängen in den Ein- und Ausstieg einer Aktivität?
@ Richard210363 bereits zu den Kommentaren hinzugefügt, dass diese Funktion von Windows Workflow Foundation unterstützt wird - bitte können die Benutzer, die gewählt haben diese Frage prüfen, die in der Nähe ihrer Entscheidung Umkehrung als die Frage eindeutig eine sehr spezifische Antwort mit der hat Rahmen in Frage?
nicht sicher über das Windows Workflow-Framework, aber AOP wird nicht sofort mit .net unterstützt. Sie müssen in MS Unity oder PostSharp usw. schauen, aber ich bezweifle, dass es eine schlüsselfertige Lösung sein wird und Arbeit erfordert (Hinzufügen von Attributen, wenn Sie Postsharp verwenden oder Codierungsmethoden über andere Lösungen) – Harrison
Angenommen, ich habe einen Workflow xaml mit eine Aktivität, die "Hallo Welt" druckt. Jetzt, ohne die XAML-Datei zu ändern, möchte ich vor dem Einstieg in die Aktivität "Hello World Activity eingeben" drucken. Nach dem Druck von "Hello World" sollte ich "Completed Hello World Activity" drucken können. Grundsätzlich löst AOP diesen Anwendungsfall. – thangamanikasi
Sehen Sie sich die Workflow TrackingParticipant-Klasse an. Sie hängen dies vor dem Ausführen an einen Workflow an. _workflowApplication.Extensions.Add (TrackingParticipant); Es wirkt auf alle Aktivitäten im Workflow ähnlich wie AOP im Umfang. Es gibt Informationen über den Eintritt und den Ausgang von Aktivitäten aus. Sie sollten von TrackingParticipant erben und die Track-Methode überschreiben: protected override void Track (TrackingRecord-Datensatz, TimeSpan-Timeout). Dann trage TrackingRecord auf ActivityStateRecord. Der Name der Aktivität lautet ActivityStateRecord..Activity.Name – Richard210363