WorkflowRuntime.CreateWorkflow 方法

定義

使用指定的參數建立工作流程執行個體。

多載

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

使用指定的參數建立工作流程執行個體。

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

使用指定的參數建立工作流程執行個體。

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

使用指定的 XmlReader 物件和包含在指定之 Dictionary<TKey,TValue> 中的引數建立工作流程執行個體。

CreateWorkflow(XmlReader)

使用指定的 XmlReader 建立工作流程執行個體。

CreateWorkflow(Type)

使用指定的工作流程 Type 建立新的工作流程執行個體。

CreateWorkflow(Type, Dictionary<String,Object>)

使用指定的工作流程 Type 和指定之 Dictionary<TKey,TValue> 中的工作流程之引數來建立工作流程執行個體。

備註

如果工作流程執行階段引擎尚未啟動,CreateWorkflow 方法會呼叫 StartRuntime。 如需可能的例外狀況清單,請參閱 StartRuntime。 建立工作流程執行個體後,呼叫 WorkflowInstance.Start 方法傳回之 WorkflowInstance 物件上的 CreateWorkflow 以開始其執行。

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

使用指定的參數建立工作流程執行個體。

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

參數

workflowDefinitionReader
XmlReader

包含工作流程定義的 XmlReader

rulesReader
XmlReader

XmlReader

namedArgumentValues
Dictionary<String,Object>

由字串建立索引鍵之物件的 Dictionary<TKey,TValue>,代表工作流程的引數。

instanceId
Guid

要建立之特定 GuidWorkflowInstance

傳回

WorkflowInstance

建立的工作流程執行個體。

例外狀況

workflowType 為 null 參考 (在 Visual Basic 中為 Nothing)。

備註

建立 WorkflowInstance 之前,系統會針對它執行驗證。 如果發生任何驗證錯誤,就會擲回 WorkflowValidationFailedException。 這對於簡單案例很有用,但是在伺服器環境中,針對每一個啟動過程重新驗證工作流程可能是不必要的額外負荷。

如需停用驗證的詳細資訊,請參閱 ValidateOnCreate

instanceId 載入的任何執行中工作流程的工作流程 WorkflowRuntime 必須是唯一的。 如果傳遞 instanceId 以建立工作流程,而且某個執行中的工作流程已在使用該 instanceId,則會擲回 InvalidOperationException

如需將參數傳入 的範例,請參閱使用參數 CreateWorkflow 範例的工作流程

如需使用 XML 中所定義規則的範例,請參閱 IfElse 與規則範例

適用於

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

使用指定的參數建立工作流程執行個體。

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

參數

workflowType
Type

要建立之工作流程的 Type

namedArgumentValues
Dictionary<String,Object>

由字串建立索引鍵之物件的 Dictionary<TKey,TValue>,代表工作流程的引數。

instanceId
Guid

要建立之特定 GuidWorkflowInstance

傳回

WorkflowInstance

建立的工作流程執行個體。

例外狀況

workflowType 為 null 參考 (在 Visual Basic 中為 Nothing)。

備註

建立 WorkflowInstance 之前,系統會針對它執行驗證。 如果發生任何驗證錯誤,就會擲回 WorkflowValidationFailedException。 這對於簡單案例很有用,但是在伺服器環境中,針對每一個啟動過程重新驗證工作流程可能是不必要的額外負荷。

如需停用驗證的詳細資訊,請參閱 ValidateOnCreate

instanceId 載入的任何執行中工作流程的工作流程 WorkflowRuntime 必須是唯一的。 如果傳遞 instanceId 以建立工作流程,而且某個執行中的工作流程已在使用該 instanceId,則會擲回 InvalidOperationException

如需將參數傳入 的範例,請參閱使用參數 CreateWorkflow 範例的工作流程

適用於

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

使用指定的 XmlReader 物件和包含在指定之 Dictionary<TKey,TValue> 中的引數建立工作流程執行個體。

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

參數

workflowDefinitionReader
XmlReader

包含工作流程定義的 XmlReader

rulesReader
XmlReader

XmlReader

namedArgumentValues
Dictionary<String,Object>

由字串建立索引鍵之物件的 Dictionary<TKey,TValue>,代表工作流程的引數。

傳回

WorkflowInstance

建立的工作流程執行個體。

例外狀況

workflowDefinitionReader 為 null 參考 (在 Visual Basic 中為 Nothing)。

備註

工作流程執行個體是從 XmlReader 參考的工作流程定義和 namedArgumentValues 提供的引數來建立。

建立 WorkflowInstance 之前,系統會針對它執行驗證。 如果發生任何驗證錯誤,就會擲回 WorkflowValidationFailedException。 這對於簡單案例很有用,但是在伺服器環境中,針對每一個啟動過程重新驗證工作流程可能是不必要的額外負荷。

如需停用驗證的詳細資訊,請參閱 ValidateOnCreate

如需將參數傳入 的範例,請參閱使用參數 CreateWorkflow 範例的工作流程

如需使用 XML 中所定義規則的範例,請參閱 IfElse 與規則範例

適用於

CreateWorkflow(XmlReader)

使用指定的 XmlReader 建立工作流程執行個體。

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

參數

workflowDefinitionReader
XmlReader

包含工作流程定義的 XmlReader

傳回

WorkflowInstance

建立的工作流程執行個體。

例外狀況

workflowDefinitionReader 為 null 參考 (在 Visual Basic 中為 Nothing)。

範例

下列程式碼範例將示範如何使用指定的 XAML 工作流程定義來建立工作流程。

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();  
    }  
}  

備註

工作流程執行個體是從 XmlReader 參考的 XAML 工作流程定義檔建立。

建立 WorkflowInstance 之前,系統會針對它執行驗證。 如果發生任何驗證錯誤,就會擲回 WorkflowValidationFailedException。 這對於簡單案例很有用,但是在伺服器環境中,針對每一個啟動過程重新驗證工作流程可能是不必要的額外負荷。

如需停用驗證的詳細資訊,請參閱 ValidateOnCreate

適用於

CreateWorkflow(Type)

使用指定的工作流程 Type 建立新的工作流程執行個體。

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

參數

workflowType
Type

要建立之工作流程的 Type

傳回

WorkflowInstance

建立的工作流程執行個體。

例外狀況

workflowType 為 null 參考 (在 Visual Basic 中為 Nothing)。

範例

下列程式碼範例將示範如何在使用 WorkflowInstance 方法的工作流程主機中,以建議的方法建立 CreateWorkflow 物件。

此程式碼範例是 取消工作流程 範例的一部分。

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

備註

建立 WorkflowInstance 之前,系統會針對它執行驗證。 如果發生任何驗證錯誤,就會擲回 WorkflowValidationFailedException。 這對於簡單案例很有用,但是在伺服器環境中,針對每一個啟動過程重新驗證工作流程可能是不必要的額外負荷。

如需停用驗證的詳細資訊,請參閱 ValidateOnCreate

適用於

CreateWorkflow(Type, Dictionary<String,Object>)

使用指定的工作流程 Type 和指定之 Dictionary<TKey,TValue> 中的工作流程之引數來建立工作流程執行個體。

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

參數

workflowType
Type

要建立之工作流程的 Type

namedArgumentValues
Dictionary<String,Object>

由字串建立索引鍵之物件的 Dictionary<TKey,TValue>,代表工作流程的引數。

傳回

WorkflowInstance

建立的工作流程執行個體。

例外狀況

workflowType 為 null 參考 (在 Visual Basic 中為 Nothing)。

備註

建立 WorkflowInstance 之前,系統會針對它執行驗證。 如果發生任何驗證錯誤,就會擲回 WorkflowValidationFailedException。 這對於簡單案例很有用,但是在伺服器環境中,針對每一個啟動過程重新驗證工作流程可能是不必要的額外負荷。

如需停用驗證的詳細資訊,請參閱 ValidateOnCreate

如需將參數傳入 的範例,請參閱使用參數 CreateWorkflow 範例的工作流程

適用於