다음을 통해 공유


값 범위에서 전환할 사용자 지정 활동

이 항목은 Windows Workflow Foundation 4에 적용됩니다.

이 샘플에서는 Switch의 사용을 확장하는 사용자 지정 활동을 만드는 방법을 보여 줍니다. 일반적인 Switch 문을 사용하면 단일 값에 따라 전환할 수 있습니다. 그러나 값 범위에 따라 활동을 전환해야 하는 비즈니스 시나리오도 있습니다. 예를 들어 활동이 전환되는 기준 값이 1과 5 사이인 경우 하나의 동작을 실행하고 값이 6에서 10 사이인 경우 다른 동작을 실행하고 다른 모든 값의 경우 기본 동작을 실행할 수 있습니다. 이 사용자 지정 활동을 사용하면 해당 시나리오를 정확하게 수행할 수 있습니다.

SwitchRange 활동

SwitchRange 활동은 식의 결과 값이 Cases 중 하나의 범위 내에 포함되는 경우 자식 활동을 예약합니다.

다음 코드 예제는 값 범위에 따라 전환되는 사용자 지정 활동입니다.

public sealed class SwitchRange<T> : NativeActivity where T : IComparable
{
   [RequiredArgument]
   [DefaultValue(null)]
   public InArgument<T> Expression { get; set; }

   public IList<CaseRange<T>> Cases

   [DefaultValue(null)]
   public Activity Default { get; set; }}
}

속성

설명

Cases 목록의 범위를 기준으로 계산 및 비교될 식입니다. 식의 결과 형식은 T 형식입니다.

Cases

각 케이스는 범위(시작과 끝)와 활동(본문)으로 구성됩니다. 식은 범위를 기준으로 계산 및 비교됩니다. 식의 결과가 케이스 중 하나의 범위 내에 있는 경우 해당 활동이 실행됩니다.

Default

일치하는 케이스가 없는 경우 실행되는 활동입니다. null로 설정되어 있으면 아무 동작도 수행되지 않습니다.

CaseRange 클래스

CaseRange 클래스는 SwitchRange 활동 내의 범위를 나타냅니다. CaseRange의 모든 인스턴스에는 범위(FromTo로 구성)와 SwitchRange의 식이 범위 내에서 계산되는 경우 예약되는 Body 활동이 포함됩니다.

다음 코드 예제는 CaseRange 클래스에 대한 정의입니다.

public class CaseRange<T> where T : IComparable
{
    public T From { get; set; }

    public T To { get; set; }

    public Activity Action { get; set; }
}
Dd797581.note(ko-kr,VS.100).gif참고:
샘플에 정의된 SwitchRangeCaseRange 클래스는 IComparable을 구현하는 모든 형식을 사용할 수 있는 제네릭 클래스입니다(예: Switch 클래스).

샘플 사용

다음 코드 예제에서는 SwitchRange 활동을 사용하는 방법을 보여 줍니다.

Activity SwitchRange = new SwitchRange<int>
{
    Expression = new InArgument<int>(value),
    Cases = 
    {
        new CaseRange<int>                    
        {
            From = 1,
            To = 5,
            Action = new WriteLine
            {
                Text = "Case 1-5 selected",
            }
        },
        new CaseRange<int>
        {
            From = 6,
            To = 10,
            Action = new WriteLine
            {
                Text = "Case 6-10 selected",
            }
        }
    },
    Default = new WriteLine { Text = "Default Case selected" }
};

이 샘플을 사용하려면

  1. Visual Studio 2010을 사용하여 SwitchRange.sln 솔루션 파일을 엽니다.

  2. F6 키를 눌러 솔루션을 빌드합니다.

  3. Ctrl+F5를 눌러 솔루션을 실행합니다.

Dd797581.Important(ko-kr,VS.100).gif 참고:
컴퓨터에 이 샘플이 이미 설치되어 있을 수도 있습니다. 계속하기 전에 다음(기본) 디렉터리를 확인하십시오.

<InstallDrive>:\WF_WCF_Samples

이 디렉터리가 없으면 Windows Communication Foundation (WCF) and Windows Workflow Foundation (WF) Samples for .NET Framework 4로 이동하여 WCF(Windows Communication Foundation) 및 WF 샘플을 모두 다운로드하십시오. 이 샘플은 다음 디렉터리에 있습니다.

<InstallDrive>:\WF_WCF_Samples\WF\Scenario\ActivityLibrary\SwitchRange