다음을 통해 공유


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> 활동에서 데이터를 흐를 때 사용됩니다. 활동이 워크플로의 루트 활동인 경우 워크플로에서 워크플로 호스트로 데이터를 이동하는 데도 사용됩니다. 이 예제에서는 두 개의 입력 인수와 하나의 출력 인수가 있는 사용자 지정 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 작업은 인수를 사용하여 입력 값을 수신하고 계산된 결과 값을 제공합니다. Remainder OutArgument<T> 나누기의 나머지 부분을 전달하는 데 사용되며, Activity<TResult> 파생 작업에서 제공하는 Result 출력 인수는 몫을 전달하는 데 사용됩니다.

메모

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

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

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

OutArgument<T>(DelegateArgument)

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

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

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

OutArgument<T>(Variable)

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

필드

ResultValue

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

(다음에서 상속됨 Argument)

속성

ArgumentType

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

(다음에서 상속됨 Argument)
Direction

Argument 활동으로의 데이터 흐름을 나타내는지, 활동 외부로의 데이터 흐름을 나타내는지, 활동 안팎으로의 데이터 흐름을 나타내는지를 지정하는 ArgumentDirection 가져옵니다.

(다음에서 상속됨 Argument)
EvaluationOrder

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

(다음에서 상속됨 Argument)
Expression

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

메서드

Equals(Object)

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

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

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

FromExpression(Activity<Location<T>>)

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

FromVariable(Variable)

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

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

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

Implicit(DelegateArgument to OutArgument<T>)

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

Implicit(Variable to OutArgument<T>)

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

적용 대상