다음을 통해 공유


WorkflowApplication 생성자

정의

WorkflowApplication 클래스의 새 인스턴스를 만듭니다.

오버로드

WorkflowApplication(Activity)

지정한 워크플로 정의를 사용하여 WorkflowApplication 클래스의 새 인스턴스를 만듭니다.

WorkflowApplication(Activity, WorkflowIdentity)

지정된 워크플로 정의 및 정의 ID를 사용하여 WorkflowApplication 클래스의 새 인스턴스를 만듭니다.

WorkflowApplication(Activity, IDictionary<String,Object>)

지정한 워크플로 정의 및 인수 값을 사용하는 WorkflowApplication 클래스의 새 인스턴스를 만듭니다.

WorkflowApplication(Activity, IDictionary<String,Object>, WorkflowIdentity)

지정한 워크플로 정의, 인수 값 및 정의 ID을 사용하는 WorkflowApplication 클래스의 새 인스턴스를 만듭니다.

WorkflowApplication(Activity)

지정한 워크플로 정의를 사용하여 WorkflowApplication 클래스의 새 인스턴스를 만듭니다.

public:
 WorkflowApplication(System::Activities::Activity ^ workflowDefinition);
public WorkflowApplication (System.Activities.Activity workflowDefinition);
new System.Activities.WorkflowApplication : System.Activities.Activity -> System.Activities.WorkflowApplication
Public Sub New (workflowDefinition As Activity)

매개 변수

workflowDefinition
Activity

워크플로 정의입니다.

예제

다음 예제에서는 WorkflowApplication을 사용하여 워크플로를 호스트합니다. WorkflowApplication 인스턴스는 단일 DiceRoll 작업으로 구성된 워크플로 정의를 사용하여 생성됩니다. DiceRoll 활동에는 주사위 굴리기 작업의 결과를 나타내는 두 개의 출력 인수가 있습니다. 워크플로가 완료되면 출력이 처리기에서 Completed 검색되고 다음 출력이 콘솔에 표시됩니다.

Workflow aae3fb48-7229-4737-b969-d63e131b96b3 Completed.   
The two dice are 1 and 5.  
public sealed class DiceRoll : CodeActivity
{
    public OutArgument<int> D1 { get; set; }
    public OutArgument<int> D2 { get; set; }

    static Random r = new Random();

    protected override void Execute(CodeActivityContext context)
    {
        D1.Set(context, r.Next(1, 7));
        D2.Set(context, r.Next(1, 7));
    }
}
 // Create a WorkflowApplication instance.
 WorkflowApplication wfApp = new WorkflowApplication(new DiceRoll());

 // Subscribe to any desired workflow lifecycle events.
 wfApp.Completed = delegate(WorkflowApplicationCompletedEventArgs e)
 {
     if (e.CompletionState == ActivityInstanceState.Faulted)
     {
         Console.WriteLine("Workflow {0} Terminated.", e.InstanceId);
         Console.WriteLine("Exception: {0}\n{1}",
             e.TerminationException.GetType().FullName,
             e.TerminationException.Message);
     }
     else if (e.CompletionState == ActivityInstanceState.Canceled)
     {
         Console.WriteLine("Workflow {0} Canceled.", e.InstanceId);
     }
     else
     {
         Console.WriteLine("Workflow {0} Completed.", e.InstanceId);

         // Outputs can be retrieved from the Outputs dictionary,
         // keyed by argument name.
         Console.WriteLine("The two dice are {0} and {1}.",
             e.Outputs["D1"], e.Outputs["D2"]);
     }
 };

// Run the workflow.
 wfApp.Run();

적용 대상

WorkflowApplication(Activity, WorkflowIdentity)

지정된 워크플로 정의 및 정의 ID를 사용하여 WorkflowApplication 클래스의 새 인스턴스를 만듭니다.

public:
 WorkflowApplication(System::Activities::Activity ^ workflowDefinition, System::Activities::WorkflowIdentity ^ definitionIdentity);
public WorkflowApplication (System.Activities.Activity workflowDefinition, System.Activities.WorkflowIdentity definitionIdentity);
new System.Activities.WorkflowApplication : System.Activities.Activity * System.Activities.WorkflowIdentity -> System.Activities.WorkflowApplication
Public Sub New (workflowDefinition As Activity, definitionIdentity As WorkflowIdentity)

매개 변수

workflowDefinition
Activity

워크플로 정의입니다.

definitionIdentity
WorkflowIdentity

정의 ID입니다.

적용 대상

WorkflowApplication(Activity, IDictionary<String,Object>)

지정한 워크플로 정의 및 인수 값을 사용하는 WorkflowApplication 클래스의 새 인스턴스를 만듭니다.

public:
 WorkflowApplication(System::Activities::Activity ^ workflowDefinition, System::Collections::Generic::IDictionary<System::String ^, System::Object ^> ^ inputs);
public WorkflowApplication (System.Activities.Activity workflowDefinition, System.Collections.Generic.IDictionary<string,object> inputs);
new System.Activities.WorkflowApplication : System.Activities.Activity * System.Collections.Generic.IDictionary<string, obj> -> System.Activities.WorkflowApplication
Public Sub New (workflowDefinition As Activity, inputs As IDictionary(Of String, Object))

매개 변수

workflowDefinition
Activity

워크플로 정의입니다.

inputs
IDictionary<String,Object>

인수 이름으로 키가 지정된 워크플로 정의의 루트 활동에 대해 정의된 인수 값입니다.

예제

다음 예제에서는 WorkflowApplication을 사용하여 워크플로를 호스트합니다. WorkflowApplication instance 두 개의 입력 인수를 사용하는 단일 Divide 작업과 전달될 두 값을 포함하는 입력 인수 사전으로 구성된 워크플로 정의를 사용하여 생성됩니다. 인수 이름으로 키가 지정됩니다. 원하는 워크플로 수명 주기 이벤트가 처리되고 에 대한 호출 Run을 통해 워크플로가 호출됩니다. 워크플로가 완료되면 다음 출력이 콘솔에 표시됩니다.

Workflow 8dc844c1-bbf8-4b21-a9a2-05f89e416055 Completed  
500 / 36 = 13 Remainder 32  
Workflow 8dc844c1-bbf8-4b21-a9a2-05f89e416055 Unloaded.  
public sealed class Divide : CodeActivity
{
    [RequiredArgument]
    public InArgument<int> Dividend { get; set; }

    [RequiredArgument]
    public InArgument<int> Divisor { get; set; }

    public OutArgument<int> Remainder { get; set; }
    public OutArgument<int> Result { get; set; }

    protected override void Execute(CodeActivityContext context)
    {
        int quotient = Dividend.Get(context) / Divisor.Get(context);
        int remainder = Dividend.Get(context) % Divisor.Get(context);

        Result.Set(context, quotient);
        Remainder.Set(context, remainder);
    }
}
int dividend = 500;
int divisor = 36;

Dictionary<string, object> inputs = new Dictionary<string, object>();
inputs.Add("Dividend", dividend);
inputs.Add("Divisor", divisor);

// Create a WorkflowApplication instance.
WorkflowApplication wfApp = new WorkflowApplication(new Divide(), inputs);

// Subscribe to any desired workflow lifecycle events.
wfApp.Completed = delegate(WorkflowApplicationCompletedEventArgs e)
{
    if (e.CompletionState == ActivityInstanceState.Faulted)
    {
        Console.WriteLine("Workflow {0} Terminated.", e.InstanceId);
        Console.WriteLine("Exception: {0}\n{1}",
            e.TerminationException.GetType().FullName,
            e.TerminationException.Message);
    }
    else if (e.CompletionState == ActivityInstanceState.Canceled)
    {
        Console.WriteLine("Workflow {0} Canceled.", e.InstanceId);
    }
    else
    {
        Console.WriteLine("Workflow {0} Completed.", e.InstanceId);

        // Outputs can be retrieved from the Outputs dictionary,
        // keyed by argument name.
        Console.WriteLine("{0} / {1} = {2} Remainder {3}",
            dividend, divisor, e.Outputs["Result"], e.Outputs["Remainder"]);
    }
};

// Run the workflow.
wfApp.Run();

적용 대상

WorkflowApplication(Activity, IDictionary<String,Object>, WorkflowIdentity)

지정한 워크플로 정의, 인수 값 및 정의 ID을 사용하는 WorkflowApplication 클래스의 새 인스턴스를 만듭니다.

public:
 WorkflowApplication(System::Activities::Activity ^ workflowDefinition, System::Collections::Generic::IDictionary<System::String ^, System::Object ^> ^ inputs, System::Activities::WorkflowIdentity ^ definitionIdentity);
public WorkflowApplication (System.Activities.Activity workflowDefinition, System.Collections.Generic.IDictionary<string,object> inputs, System.Activities.WorkflowIdentity definitionIdentity);
new System.Activities.WorkflowApplication : System.Activities.Activity * System.Collections.Generic.IDictionary<string, obj> * System.Activities.WorkflowIdentity -> System.Activities.WorkflowApplication
Public Sub New (workflowDefinition As Activity, inputs As IDictionary(Of String, Object), definitionIdentity As WorkflowIdentity)

매개 변수

workflowDefinition
Activity

워크플로 정의입니다.

inputs
IDictionary<String,Object>

정의 ID입니다.

definitionIdentity
WorkflowIdentity

인수 이름으로 키가 지정된 워크플로 정의의 루트 활동에 대해 정의된 인수 값입니다.

적용 대상