0

Bekam eine einfache "Newbie" Art von Frage.OOP + WorkFlow4

Ich möchte ein InArgument zwischen 2 Workflows "teilen". Lassen Sie uns für einen Moment das folgende klassische OOP-Szenario betrachten: Sie haben 2 Klassen mit derselben Eigenschaft. Ein vernünftiger OOP-Ansatz wäre, eine Basisklasse zu erstellen und diese Eigenschaft einmal zu implementieren.

Wenn Sie ein neues WorkFlow-Projekt erstellen, erhalten Sie eine XAML-Datei und Ihre CS wird automatisch generiert. Ich möchte in der Lage sein, von einer Aktivität geerbt zu werden, die InArgument angibt und das WorkFlow seine Eigenschaft in seinem Argumentdesigner anzeigen lässt. Mit diesem Ansatz sollte ich in der Lage sein, einmal in einer Aktivität ein InArgument zu definieren und abgeleitete WF zu erzwingen, um dieses Argument zu haben.

Macht es Sinn?

Bedenken Sie, dass dies Teil eines Frameworks sein soll, ich möchte, dass mein Framework-Benutzer das Minimum tut und ich wünsche ihm immer noch die Möglichkeit, einen Deisgner zu verwenden (nur CodeActivities zu verwenden ist unangemessen).

Wie kann ich es erreichen?

Ariel

+0

Warum ist die Frage unklar? anstatt es zu markieren, erkläre mir, was klarer sein muss. – ArielBH

Antwort

0

FYI, eine Antwort von WP4 Forum in MSDN:

WF4 Workflow ist keine OOP-Sprache, und ich glaube nicht, dass es eine gute Idee ist, ein existierte Workflow zu erben. Als eine alternative Lösung. Sie können eine Composten-Aktivität als Workflow-Vorlage erstellen. Dann können Benutzer ihren eigenen Workflow erstellen, indem Sie Ihre Workflowvorlage verwenden.

http://social.msdn.microsoft.com/Forums/en-US/wfprerelease/thread/08b8e00d-8363-4858-8377-83373213edae#fb352215-da10-4c77-8782-d047519f0e08

0

FYI, In WF4 der VS2010 WF Designer erzeugt nur XML. Es gibt keinen generierten C# -Code.

Sie möchten eine benutzerdefinierte Aktivität im Code entwickeln, die das InArgument als Eigenschaft darstellt. Ihre benutzerdefinierte Aktivität wird in der Toolbox angezeigt und kann in jedem von Ihnen entworfenen Workflow verwendet werden.