Freigeben über


WorkflowRuntime.CreateWorkflow Methode

Definition

Erstellt durch das Verwenden der angegebenen Parameter eine Workflowinstanz.

Überlädt

CreateWorkflow(XmlReader, XmlReader, Dictionary<String,Object>, Guid)

Erstellt durch das Verwenden der angegebenen Parameter eine Workflowinstanz.

CreateWorkflow(Type, Dictionary<String,Object>, Guid)

Erstellt durch das Verwenden der angegebenen Parameter eine Workflowinstanz.

CreateWorkflow(XmlReader, XmlReader, Dictionary<String,Object>)

Erstellt eine Workflowinstanz, indem die angegebenen XmlReader-Objekte und die Argumente verwendet werden, die im angegebenen Dictionary<TKey,TValue> enthalten sind.

CreateWorkflow(XmlReader)

Erstellt mit dem angegebenen XmlReader eine Workflowinstanz.

CreateWorkflow(Type)

Erstellt mit dem Type des angegebenen Workflows eine neue Workflowinstanz.

CreateWorkflow(Type, Dictionary<String,Object>)

Erstellt eine Workflowinstanz, indem der angegebene Type des Workflows und seine Argumente verwendet werden, die im angegebenen Dictionary<TKey,TValue> enthalten sind.

Hinweise

Wenn die Workflowruntime-Engine nicht gestartet wurde, rufen die CreateWorkflow-Methoden StartRuntime auf. Eine Liste mit möglichen Ausnahmen finden Sie unter StartRuntime. Rufen Sie nach dem Erstellen der Workflowinstanz WorkflowInstance.Start für das WorkflowInstance-Objekt auf, das von der CreateWorkflow-Methode zurückgegeben wird, um die Ausführung zu starten.

CreateWorkflow(XmlReader, XmlReader, Dictionary<String,Object>, Guid)

Erstellt durch das Verwenden der angegebenen Parameter eine Workflowinstanz.

public:
 System::Workflow::Runtime::WorkflowInstance ^ CreateWorkflow(System::Xml::XmlReader ^ workflowDefinitionReader, System::Xml::XmlReader ^ rulesReader, System::Collections::Generic::Dictionary<System::String ^, System::Object ^> ^ namedArgumentValues, Guid instanceId);
public System.Workflow.Runtime.WorkflowInstance CreateWorkflow (System.Xml.XmlReader workflowDefinitionReader, System.Xml.XmlReader rulesReader, System.Collections.Generic.Dictionary<string,object> namedArgumentValues, Guid instanceId);
member this.CreateWorkflow : System.Xml.XmlReader * System.Xml.XmlReader * System.Collections.Generic.Dictionary<string, obj> * Guid -> System.Workflow.Runtime.WorkflowInstance
Public Function CreateWorkflow (workflowDefinitionReader As XmlReader, rulesReader As XmlReader, namedArgumentValues As Dictionary(Of String, Object), instanceId As Guid) As WorkflowInstance

Parameter

workflowDefinitionReader
XmlReader

XmlReader, der die Workflowdefinition enthält.

rulesReader
XmlReader

XmlReader.

namedArgumentValues
Dictionary<String,Object>

Ein Dictionary<TKey,TValue> von Objekten, die durch eine Zeichenfolge schlüsselgebunden sind, die die Argumente des Workflows darstellt.

instanceId
Guid

Die Guid der jeweils zu erstellenden WorkflowInstance.

Gibt zurück

WorkflowInstance

Die erstellte Workflowinstanz.

Ausnahmen

workflowType ist ein NULL-Verweis (Nothing in Visual Basic).

Hinweise

Bevor die WorkflowInstance erstellt wird, wird dafür die Validierung ausgeführt. Falls Validierungsfehler auftreten, wird die WorkflowValidationFailedException ausgelöst. Dies funktioniert für einfache Szenarios gut, aber in einer Serverumgebung kann das erneute Überprüfen eines Workflows bei jeder Aktivierung zu unnötigem Mehraufwand führen.

Weitere Informationen zum Deaktivieren der Validierung finden Sie unter ValidateOnCreate.

Die instanceId des Workflows muss für alle ausgeführten Workflows, die von WorkflowRuntime geladen werden, jeweils eindeutig sein. Wenn Sie eine instanceId übergeben, um einen Workflow zu erstellen, und ein ausgeführter Workflow diese instanceId bereits verwendet, wird eine InvalidOperationException ausgelöst.

Ein Beispiel für das Übergeben von Parametern zu CreateWorkflowden Parametern finden Sie unter Workflow mit Parameterbeispiel.

Ein Beispiel für die Verwendung von Regeln, die in XML definiert sind, finden Sie unter IfElse with Rules Sample.

Gilt für

CreateWorkflow(Type, Dictionary<String,Object>, Guid)

Erstellt durch das Verwenden der angegebenen Parameter eine Workflowinstanz.

public:
 System::Workflow::Runtime::WorkflowInstance ^ CreateWorkflow(Type ^ workflowType, System::Collections::Generic::Dictionary<System::String ^, System::Object ^> ^ namedArgumentValues, Guid instanceId);
public System.Workflow.Runtime.WorkflowInstance CreateWorkflow (Type workflowType, System.Collections.Generic.Dictionary<string,object> namedArgumentValues, Guid instanceId);
member this.CreateWorkflow : Type * System.Collections.Generic.Dictionary<string, obj> * Guid -> System.Workflow.Runtime.WorkflowInstance
Public Function CreateWorkflow (workflowType As Type, namedArgumentValues As Dictionary(Of String, Object), instanceId As Guid) As WorkflowInstance

Parameter

workflowType
Type

Der Type des zu erstellenden Workflows.

namedArgumentValues
Dictionary<String,Object>

Ein Dictionary<TKey,TValue> von Objekten, die durch eine Zeichenfolge schlüsselgebunden sind, die die Argumente des Workflows darstellt.

instanceId
Guid

Die Guid der jeweils zu erstellenden WorkflowInstance.

Gibt zurück

WorkflowInstance

Die erstellte Workflowinstanz.

Ausnahmen

workflowType ist ein NULL-Verweis (Nothing in Visual Basic).

Hinweise

Bevor die WorkflowInstance erstellt wird, wird dafür die Validierung ausgeführt. Falls Validierungsfehler auftreten, wird die WorkflowValidationFailedException ausgelöst. Dies funktioniert für einfache Szenarios gut, aber in einer Serverumgebung kann das erneute Überprüfen eines Workflows bei jeder Aktivierung zu unnötigem Mehraufwand führen.

Weitere Informationen zum Deaktivieren der Validierung finden Sie unter ValidateOnCreate.

Die instanceId des Workflows muss für alle ausgeführten Workflows, die von WorkflowRuntime geladen werden, jeweils eindeutig sein. Wenn Sie eine instanceId übergeben, um einen Workflow zu erstellen, und ein ausgeführter Workflow diese instanceId bereits verwendet, wird eine InvalidOperationException ausgelöst.

Ein Beispiel für das Übergeben von Parametern zu CreateWorkflowden Parametern finden Sie unter Workflow mit Parameterbeispiel.

Gilt für

CreateWorkflow(XmlReader, XmlReader, Dictionary<String,Object>)

Erstellt eine Workflowinstanz, indem die angegebenen XmlReader-Objekte und die Argumente verwendet werden, die im angegebenen Dictionary<TKey,TValue> enthalten sind.

public:
 System::Workflow::Runtime::WorkflowInstance ^ CreateWorkflow(System::Xml::XmlReader ^ workflowDefinitionReader, System::Xml::XmlReader ^ rulesReader, System::Collections::Generic::Dictionary<System::String ^, System::Object ^> ^ namedArgumentValues);
public System.Workflow.Runtime.WorkflowInstance CreateWorkflow (System.Xml.XmlReader workflowDefinitionReader, System.Xml.XmlReader rulesReader, System.Collections.Generic.Dictionary<string,object> namedArgumentValues);
member this.CreateWorkflow : System.Xml.XmlReader * System.Xml.XmlReader * System.Collections.Generic.Dictionary<string, obj> -> System.Workflow.Runtime.WorkflowInstance
Public Function CreateWorkflow (workflowDefinitionReader As XmlReader, rulesReader As XmlReader, namedArgumentValues As Dictionary(Of String, Object)) As WorkflowInstance

Parameter

workflowDefinitionReader
XmlReader

XmlReader, der die Workflowdefinition enthält.

rulesReader
XmlReader

XmlReader.

namedArgumentValues
Dictionary<String,Object>

Ein Dictionary<TKey,TValue> von Objekten, die durch eine Zeichenfolge schlüsselgebunden sind, die die Argumente des Workflows darstellt.

Gibt zurück

WorkflowInstance

Die erstellte Workflowinstanz.

Ausnahmen

workflowDefinitionReader ist ein NULL-Verweis (Nothing in Visual Basic).

Hinweise

Die Workflowinstanz wird aus der Workflowdefinition, auf die von XmlReader verwiesen wird, und den unter namedArgumentValues bereitgestellten Argumenten erstellt.

Bevor die WorkflowInstance erstellt wird, wird dafür die Validierung ausgeführt. Falls Validierungsfehler auftreten, wird die WorkflowValidationFailedException ausgelöst. Dies funktioniert für einfache Szenarios gut, aber in einer Serverumgebung kann das erneute Überprüfen eines Workflows bei jeder Aktivierung zu unnötigem Mehraufwand führen.

Weitere Informationen zum Deaktivieren der Validierung finden Sie unter ValidateOnCreate.

Ein Beispiel für das Übergeben von Parametern zu CreateWorkflowden Parametern finden Sie unter Workflow mit Parameterbeispiel.

Ein Beispiel für die Verwendung von Regeln, die in XML definiert sind, finden Sie unter IfElse with Rules Sample.

Gilt für

CreateWorkflow(XmlReader)

Erstellt mit dem angegebenen XmlReader eine Workflowinstanz.

public:
 System::Workflow::Runtime::WorkflowInstance ^ CreateWorkflow(System::Xml::XmlReader ^ workflowDefinitionReader);
public System.Workflow.Runtime.WorkflowInstance CreateWorkflow (System.Xml.XmlReader workflowDefinitionReader);
member this.CreateWorkflow : System.Xml.XmlReader -> System.Workflow.Runtime.WorkflowInstance
Public Function CreateWorkflow (workflowDefinitionReader As XmlReader) As WorkflowInstance

Parameter

workflowDefinitionReader
XmlReader

XmlReader, der die Workflowdefinition enthält.

Gibt zurück

WorkflowInstance

Die erstellte Workflowinstanz.

Ausnahmen

workflowDefinitionReader ist ein NULL-Verweis (Nothing in Visual Basic).

Beispiele

Das folgende Beispiel zeigt, wie Sie mithilfe einer XAML-Workflowdefinition einen Workflow erstellen.

static void Main(string[] args)  
{  
    using (WorkflowRuntime workflowRuntime = new WorkflowRuntime())  
    {  
        AutoResetEvent waitHandle = new AutoResetEvent(false);  
        workflowRuntime.WorkflowCompleted += delegate(object sender, WorkflowCompletedEventArgs e)  
        {  
            waitHandle.Set();  
        };  
        workflowRuntime.WorkflowTerminated += delegate(object sender, WorkflowTerminatedEventArgs e)  
        {  
            Console.WriteLine(e.Exception.Message);  
            waitHandle.Set();  
        };  

        TypeProvider typeProvider = new TypeProvider(null);  
        // Add referenced assemblies, if needed  
        // typeProvider.AddAssembly(...);  
        workflowRuntime.AddService(typeProvider);  

        using (XmlReader reader = XmlReader.Create("Workflow1.xoml"))  
        {  
            WorkflowInstance instance = workflowRuntime.CreateWorkflow(reader);  
            instance.Start();  
        }  

        waitHandle.WaitOne();  
    }  
}  

Hinweise

Die Workflowinstanz wird aus einer XAML-Workflowdefinitionsdatei erstellt, auf die vom XmlReader verwiesen wird.

Bevor die WorkflowInstance erstellt wird, wird dafür die Validierung ausgeführt. Falls Validierungsfehler auftreten, wird die WorkflowValidationFailedException ausgelöst. Dies funktioniert für einfache Szenarios gut, aber in einer Serverumgebung kann das erneute Überprüfen eines Workflows bei jeder Aktivierung zu unnötigem Mehraufwand führen.

Weitere Informationen zum Deaktivieren der Validierung finden Sie unter ValidateOnCreate.

Gilt für

CreateWorkflow(Type)

Erstellt mit dem Type des angegebenen Workflows eine neue Workflowinstanz.

public:
 System::Workflow::Runtime::WorkflowInstance ^ CreateWorkflow(Type ^ workflowType);
public System.Workflow.Runtime.WorkflowInstance CreateWorkflow (Type workflowType);
member this.CreateWorkflow : Type -> System.Workflow.Runtime.WorkflowInstance
Public Function CreateWorkflow (workflowType As Type) As WorkflowInstance

Parameter

workflowType
Type

Der Type des zu erstellenden Workflows.

Gibt zurück

WorkflowInstance

Die erstellte Workflowinstanz.

Ausnahmen

workflowType ist ein NULL-Verweis (Nothing in Visual Basic).

Beispiele

Das folgende Codebeispiel zeigt den empfohlenen Ansatz zum Erstellen eines WorkflowInstance-Objekts in einem Workflowhost, indem die CreateWorkflow-Methode verwendet wird.

Dieses Codebeispiel ist Teil des Beispiels zum Abbrechen eines Workflowbeispiels .

Type type = typeof(SampleWorkflow1);
WorkflowInstance workflowInstance = workflowRuntime.CreateWorkflow(type);
workflowInstance.Start();
Dim workflowInstance As WorkflowInstance
workflowInstance = workflowRuntime.CreateWorkflow(GetType(SampleWorkflow))
workflowInstance.Start()

Hinweise

Bevor die WorkflowInstance erstellt wird, wird dafür die Validierung ausgeführt. Falls Validierungsfehler auftreten, wird die WorkflowValidationFailedException ausgelöst. Dies funktioniert für einfache Szenarios gut, aber in einer Serverumgebung kann das erneute Überprüfen eines Workflows bei jeder Aktivierung zu unnötigem Mehraufwand führen.

Weitere Informationen zum Deaktivieren der Validierung finden Sie unter ValidateOnCreate.

Gilt für

CreateWorkflow(Type, Dictionary<String,Object>)

Erstellt eine Workflowinstanz, indem der angegebene Type des Workflows und seine Argumente verwendet werden, die im angegebenen Dictionary<TKey,TValue> enthalten sind.

public:
 System::Workflow::Runtime::WorkflowInstance ^ CreateWorkflow(Type ^ workflowType, System::Collections::Generic::Dictionary<System::String ^, System::Object ^> ^ namedArgumentValues);
public System.Workflow.Runtime.WorkflowInstance CreateWorkflow (Type workflowType, System.Collections.Generic.Dictionary<string,object> namedArgumentValues);
member this.CreateWorkflow : Type * System.Collections.Generic.Dictionary<string, obj> -> System.Workflow.Runtime.WorkflowInstance
Public Function CreateWorkflow (workflowType As Type, namedArgumentValues As Dictionary(Of String, Object)) As WorkflowInstance

Parameter

workflowType
Type

Der Type des zu erstellenden Workflows.

namedArgumentValues
Dictionary<String,Object>

Ein Dictionary<TKey,TValue> von Objekten, die durch die Zeichenfolge schlüsselgebunden sind, die die Argumente des Workflows darstellt.

Gibt zurück

WorkflowInstance

Die erstellte Workflowinstanz.

Ausnahmen

workflowType ist ein NULL-Verweis (Nothing in Visual Basic).

Hinweise

Bevor die WorkflowInstance erstellt wird, wird dafür die Validierung ausgeführt. Falls Validierungsfehler auftreten, wird die WorkflowValidationFailedException ausgelöst. Dies funktioniert für einfache Szenarios gut, aber in einer Serverumgebung kann das erneute Überprüfen eines Workflows bei jeder Aktivierung zu unnötigem Mehraufwand führen.

Weitere Informationen zum Deaktivieren der Validierung finden Sie unter ValidateOnCreate.

Ein Beispiel für das Übergeben von Parametern zu CreateWorkflowden Parametern finden Sie unter Workflow mit Parameterbeispiel.

Gilt für