OutArgument<T> 클래스

정의

작업 외부로의 데이터 흐름을 나타내는 바인딩 터미널입니다.

generic <typename T>
public ref class OutArgument sealed : System::Activities::OutArgument
[System.ComponentModel.TypeConverter(typeof(System.Activities.XamlIntegration.OutArgumentConverter))]
[System.Windows.Markup.ContentProperty("Expression")]
public sealed class OutArgument<T> : System.Activities.OutArgument
[<System.ComponentModel.TypeConverter(typeof(System.Activities.XamlIntegration.OutArgumentConverter))>]
[<System.Windows.Markup.ContentProperty("Expression")>]
type OutArgument<'T> = class
    inherit OutArgument
Public NotInheritable Class OutArgument(Of T)
Inherits OutArgument

형식 매개 변수

T

OutArgument<T>의 데이터 형식입니다.

상속
OutArgument<T>
특성

예제

다음 코드 샘플에서는 OutArgument<T>를 만드는 방법을 보여 줍니다. 이 예제는 Formatter 샘플에 포함되어 있습니다.

Sequence workflow = new Sequence
{
    Variables = { mealExpense, result },
    Activities =
        {
            new Assign<Expense>
            {
               Value = new InArgument<Expense>( (e) => new Meal { Amount = 50, Location = "Redmond", Vendor = "KFC" }),
               To = new OutArgument<Expense>(mealExpense)
            },
            new WriteLine
            {
                Text = new InArgument<string>("Hello")
            },
            approveExpense,
            new ReceiveReply
            {
                Request = approveExpense,
                Content = ReceiveContent.Create(new OutArgument<bool>(result))
            },

            new If
            {
               Condition = new InArgument<bool> (result),
               Then =
                    new WriteLine
                    {
                        Text = new InArgument<string>("Expense Approved")
                    },
               Else =
                    new WriteLine
                    {
                        Text = new InArgument<string>("Expense Cannot be Approved")
                    },
            },
        }
};

설명

OutArgument<T>은 작업 외부로 데이터가 흐르도록 지정하는 데 사용됩니다. 작업이 워크플로의 루트 작업인 경우 이는 워크플로 외부에서 워크플로 호스트로 데이터가 흐르도록 지정하는 데에도 사용됩니다. 이 예제에서는 입력 인수가 2개이고 출력 인수가 1개인 사용자 지정 Divide 작업이 워크플로의 루트 작업으로 사용됩니다. 호스트 애플리케이션은 두 값을 워크플로로 전달한 후 워크플로가 완료된 후 나누기 결과를 검색합니다.

int dividend = 500;
int divisor = 36;

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

IDictionary<string, object> outputs =
    WorkflowInvoker.Invoke(new Divide(), arguments);

Console.WriteLine("{0} / {1} = {2} Remainder {3}",
    dividend, divisor, outputs["Result"], outputs["Remainder"]);

Divide 작업은 입력 값을 받고 계산된 결과값을 제공하는 인수를 사용합니다. RemainderOutArgument<T> 나눈 나머지를 외부로 전달 하는 하며 Result 출력에서 제공 하는 인수 Activity<TResult> 파생된 활동 몫을 외부로 전달 하는 합니다.

참고

사용자 지정 작업이 해당 제네릭 형식 인수가 CodeActivity<TResult>인 제네릭 Int32에서 파생된 경우 WorkflowInvoker Invoke 메서드를 사용하여 작업을 호출하면 Int32 값을 반환합니다. 또한 합니다 CodeActivity<TResult>.Execute 메서드는 반환을 Int32 대신 값 void 및 반환 값을 설정할 필요가 없습니다.

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

생성자

OutArgument<T>()

기본값을 사용하여 OutArgument<T> 클래스의 새 인스턴스를 초기화합니다.

OutArgument<T>(Activity<Location<T>>)

지정된 OutArgument<T>를 사용하여 Activity<TResult> 클래스의 새 인스턴스를 초기화합니다.

OutArgument<T>(DelegateArgument)

지정된 OutArgument<T>를 사용하여 DelegateArgument 클래스의 새 인스턴스를 초기화합니다.

OutArgument<T>(Expression<Func<ActivityContext,T>>)

지정한 식을 사용하여 OutArgument<T> 클래스의 새 인스턴스를 초기화합니다.

OutArgument<T>(Variable)

지정된 OutArgument<T>를 사용하여 Variable 클래스의 새 인스턴스를 초기화합니다.

필드

ResultValue

식 기본 클래스 ActivityWithResult에서 OutArgument 형식의 Result 속성 이름에 해당하는 상수 값 "Result"를 나타냅니다.

(다음에서 상속됨 Argument)

속성

ArgumentType

Argument로 바인딩된 데이터의 데이터 형식을 가져옵니다.

(다음에서 상속됨 Argument)
Direction

ArgumentDirection가 작업 내부로의 데이터 흐름, 작업 외부로의 데이터 흐름 또는 작업 내부/외부로의 데이터 흐름을 나타내는지 여부를 지정하는 Argument을 가져옵니다.

(다음에서 상속됨 Argument)
EvaluationOrder

인수를 평가하는 순서를 지정하는 0부터 시작하는 값을 가져오거나 설정합니다.

(다음에서 상속됨 Argument)
Expression

Activity<TResult>의 값을 나타내는 OutArgument<T>를 가져옵니다.

메서드

Equals(Object)

지정된 개체가 현재 개체와 같은지 확인합니다.

(다음에서 상속됨 Object)
FromDelegateArgument(DelegateArgument)

지정한 OutArgument<T>를 사용하여 생성된 새 DelegateArgument를 초기화하고 반환합니다.

FromExpression(Activity<Location<T>>)

지정한 OutArgument<T>를 사용하여 생성된 새 Activity<TResult>를 초기화하고 반환합니다.

FromVariable(Variable)

지정한 OutArgument<T>를 사용하여 생성된 새 Variable를 초기화하고 반환합니다.

Get(ActivityContext)

지정한 작업 컨텍스트를 사용하여 OutArgument<T>의 값을 가져옵니다.

Get<T>(ActivityContext)

지정한 형식 및 작업 컨텍스트를 사용하여 인수 값을 가져옵니다.

(다음에서 상속됨 Argument)
GetHashCode()

기본 해시 함수로 작동합니다.

(다음에서 상속됨 Object)
GetLocation(ActivityContext)

OutArgument<T> 값의 위치를 가져옵니다.

GetType()

현재 인스턴스의 Type을 가져옵니다.

(다음에서 상속됨 Object)
MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.

(다음에서 상속됨 Object)
Set(ActivityContext, Object)

지정한 작업 컨텍스트를 사용하여 인수 값을 설정합니다.

(다음에서 상속됨 Argument)
Set(ActivityContext, T)

지정한 작업 컨텍스트를 사용하여 OutArgument<T> 값을 설정합니다.

ToString()

현재 개체를 나타내는 문자열을 반환합니다.

(다음에서 상속됨 Object)

연산자

Implicit(Activity<Location<T>> to OutArgument<T>)

지정한 OutArgument<T>를 사용하여 생성된 새 Activity<TResult>를 초기화하고 반환합니다.

Implicit(DelegateArgument to OutArgument<T>)

지정한 OutArgument<T>를 사용하여 생성된 새 DelegateArgument를 초기화하고 반환합니다.

Implicit(Variable to OutArgument<T>)

지정한 OutArgument<T>를 사용하여 생성된 새 Variable를 초기화하고 반환합니다.

적용 대상