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 为空引用(在 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 为空引用(在 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 为空引用(在 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 为空引用(在 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 为空引用(在 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 为空引用(在 Visual Basic 中为 Nothing)。

注解

在创建 WorkflowInstance 之前,会对其执行验证。 如果出现任何验证错误,则会引发 WorkflowValidationFailedException。 这对简单的方案很有用,但在服务器环境中,在每次激活时重新验证工作流可能会增加不必要的系统开销。

有关禁用验证的详细信息,请参阅 ValidateOnCreate

有关传入参数 CreateWorkflow的示例,请参阅 包含参数示例的工作流

适用于