이 항목은 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의 모든 인스턴스에는 범위(From 과 To로 구성)와 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; }
}
참고: |
|---|
샘플에 정의된 SwitchRange 및 CaseRange 클래스는 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" }
};
이 샘플을 사용하려면
Visual Studio 2010을 사용하여 SwitchRange.sln 솔루션 파일을 엽니다.
F6 키를 눌러 솔루션을 빌드합니다.
Ctrl+F5를 눌러 솔루션을 실행합니다.
참고: |
|---|
컴퓨터에 이 샘플이 이미 설치되어 있을 수도 있습니다. 계속하기 전에 다음(기본) 디렉터리를 확인하십시오.
<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
|
참고:
참고: