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
Параметры
- namedArgumentValues
- Dictionary<String,Object>
Коллекция Dictionary<TKey,TValue> объектов, ключом которых является строка, представляющая аргументы рабочего процесса.
- instanceId
- Guid
Тип Guid конкретного создаваемого экземпляра 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
Параметры
- namedArgumentValues
- Dictionary<String,Object>
Коллекция Dictionary<TKey,TValue> объектов, ключом которых является строка, представляющая аргументы рабочего процесса.
- instanceId
- Guid
Тип Guid конкретного создаваемого экземпляра 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
Параметры
- namedArgumentValues
- Dictionary<String,Object>
Коллекция Dictionary<TKey,TValue> объектов, ключом которых является строка, представляющая аргументы рабочего процесса.
Возвращаемое значение
Созданий экземпляр рабочего процесса.
Исключения
Параметр 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 является неопределенной ссылкой (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 является неопределенной ссылкой (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
Параметры
- namedArgumentValues
- Dictionary<String,Object>
Коллекция Dictionary<TKey,TValue> объектов, ключом которых является строка, представляющая аргументы рабочего процесса.
Возвращаемое значение
Созданий экземпляр рабочего процесса.
Исключения
Параметр workflowType является неопределенной ссылкой (Nothing в Visual Basic).
Комментарии
Перед созданием экземпляра WorkflowInstance выполняется его проверка. Если при проверке возникли какие-либо ошибки, то возникает исключение WorkflowValidationFailedException. Этот подход хорошо работает в простых ситуациях, однако в серверных средах повторная проверка рабочего процесса для каждой активации может создать излишнюю нагрузку.
Дополнительные сведения об отключении проверки см. в разделе ValidateOnCreate.
Пример передачи параметров CreateWorkflowсм. в разделе "Рабочий процесс с примером параметров".