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

Тип Guid конкретного создаваемого экземпляра WorkflowInstance.

Возвращаемое значение

WorkflowInstance

Созданий экземпляр рабочего процесса.

Исключения

Параметр workflowType является неопределенной ссылкой (Nothing в Visual Basic).

Комментарии

Перед созданием экземпляра 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

Тип Guid конкретного создаваемого экземпляра WorkflowInstance.

Возвращаемое значение

WorkflowInstance

Созданий экземпляр рабочего процесса.

Исключения

Параметр workflowType является неопределенной ссылкой (Nothing в Visual Basic).

Комментарии

Перед созданием экземпляра 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 является неопределенной ссылкой (Nothing в Visual Basic).

Объект WorkflowRuntime удален.

Комментарии

Экземпляр рабочего процесса создается из определения рабочего процесса, на которое ссылается объект 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 является неопределенной ссылкой (Nothing в Visual Basic).

Объект WorkflowRuntime удален.

Примеры

В следующем примере показано создание рабочего процесса, для которого дано определение на языке 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();  
    }  
}  

Комментарии

Экземпляр рабочего процесса создается из файла определения рабочего процесса XAML, на который ссылается объект XmlReader.

Перед созданием экземпляра 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 является неопределенной ссылкой (Nothing в Visual Basic).

Примеры

В следующем примере кода показан способ, рекомендуемый для создания объекта 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 является неопределенной ссылкой (Nothing в Visual Basic).

Комментарии

Перед созданием экземпляра WorkflowInstance выполняется его проверка. Если при проверке возникли какие-либо ошибки, то возникает исключение WorkflowValidationFailedException. Этот подход хорошо работает в простых ситуациях, однако в серверных средах повторная проверка рабочего процесса для каждой активации может создать излишнюю нагрузку.

Дополнительные сведения об отключении проверки см. в разделе ValidateOnCreate.

Пример передачи параметров CreateWorkflowсм. в разделе "Рабочий процесс с примером параметров".

Применяется к