다음을 통해 공유


.NET Framework 4.5의 외부화된 정책 활동

Rules-ExternalizedPolicy4 샘플에서는 ExternalizedPolicy4 작업에서 WF 3.5에 제공된 규칙 엔진을 사용하여 .NET Framework 4.6.1 Windows Workflow Foundation(WF 4.5RuleSet)에서 기존 .NET Framework 3.5 Windows Workflow Foundation(WF 3.5) 개체를 직접 실행할 수 있는 방법을 보여 줍니다. 이 작업을 사용하여 기존 WF 3.5 RuleSet를 열고 실행할 수 있습니다. Windows Workflow Foundation의 일부로 포함된 WF 3.5 규칙 엔진에 대한 자세한 내용은 Windows Workflow Foundation 규칙 엔진 소개를 참조하세요. .NET Framework 4.6.1에서 WF로 규칙을 마이그레이션하는 방법에 대한 자세한 내용은 마이그레이션 지침을 참조하세요.

이 샘플의 프로젝트

프로젝트 이름 설명 기본 파일
ExternalizedPolicy4 ExternalizedPolicy4 활동 및 Windows Workflow Foundation 4.5 디자이너를 포함합니다. ExternalizedPolicy4.cs: 활동 정의입니다.

ExternalizedPolicy4Designer.xaml: ExternalizedPolicy4 작업에 대한 사용자 지정 디자이너입니다. WF 3.5 규칙 엔진의 규칙 편집기(RuleSetDialog)를 사용합니다.
ImperativeCodeClientSample 명령적 C# 코드를 사용하여 ExternalizedPolicy4 애플리케이션을 사용하여 워크플로를 구성하고 실행하는 샘플 클라이언트 애플리케이션(디자이너가 사용되지 않음). ApplyDiscount.rules: WF 규칙 정의가 있는 파일입니다.

Order.cs: 고객 주문을 나타내는 형식입니다. 규칙은 이 형식의 개체에 적용됩니다.

Program.cs: ApplyDiscount.rules에 정의된 규칙을 Order 개체 인스턴스에 적용하는 Policy4 활동이 있는 워크플로를 구성하고 실행합니다.

App.config: 규칙 파일의 경로가 있는 구성 파일입니다.
DesignerClientSample WF 디자이너에서 ExternalPolicy4 애플리케이션을 사용하여 워크플로를 구성하고 실행하는 샘플 클라이언트 애플리케이션입니다. Sequence1.xaml: Policy4 작업을 사용하여 규칙 평가를 수행하는 순차 워크플로입니다.

Program.cs: Sequence1.xaml에 정의된 워크플로의 인스턴스를 실행합니다.

외부화된정책4 작업

ExternalizedPolicy4 작업은 WF 4.5 워크플로 내에서 WF 3.5 NativeActivity 개체를 실행할 수 있도록 하는 작업 RuleSet 입니다. 다음 예제는 활동의 공용 개체 모델에 대한 간소화된 정의입니다.

public class ExternalizedPolicy4Activity<TResult>: CodeActivity
{
    public string RulesFilePath

    public string RuleSetName

    [RequiredArgument]
    public InArgument<T> TargetObject

    [RequiredArgument]
    public OutArgument<T> ResultObject

    public OutArgument<ValidationErrorCollection> ValidationErrors
}
재산 설명
RuleSetFilePath(룰 셋 파일 경로) 활동이 실행될 때 평가할 .NET Framework 3.5 RuleSet 파일의 경로입니다.
규칙 집합 이름 .rules 파일 내에서 사용할 RuleSet의 이름입니다.
타겟오브젝트 (TargetObject) Rule에서 RuleSet 개체가 평가되는 대상 개체입니다.
ResultObject 규칙이 적용된 후의 결과 개체입니다(예: 규칙은 입력 인수에 적용되고 결과는 Result 인수에 저장됩니다.)
유효성 검사 오류 실행 전에 대상 개체에 대해 유효성을 검사할 때 WF 3.5 규칙 엔진에서 반환한 RuleSet 유효성 검사 오류 목록입니다.

ExternalizedPolicy4 활동 디자이너

ExternalizedPolicy4 디자이너를 사용하면 코드를 작성하지 않고도 기존 RuleSet을 사용하도록 활동을 구성할 수 있습니다. .rules 파일이 있는 경로를 설정하고 사용할 이름을 지정 RuleSet 하기만 하면 됩니다. 또한 RuleSet을(를) 수정할 수 있습니다. 솔루션을 빌드한 후 Microsoft.Samples.Activities.Rules 섹션의 도구 상자에서 찾을 수 있습니다. 디자이너를 사용하면 .rules 파일과 RuleSet을 선택할 수 있습니다. 규칙 집합 편집 단추를 클릭하면 WF 3.5 RuleSetDialog 가 표시됩니다. 이 대화 상자는 다시 호스팅된 WF 3.5 규칙 편집기이며 ExternalizedPolicy4 작업이 실행하는 규칙을 보고 편집하는 데 사용됩니다.

Policy4 및 ExternalPolicy4

정책 작업을 사용하면 WF 4.5 워크플로에서 .NET Framework 3.5 RuleSet을 만들고 실행할 수 있습니다. Policy4 활동 XAML 정의에서 RuleSet가 인라인으로 직렬화됩니다. ExternalizedPolicy4 샘플은 기존 외부 RuleSet (.rules 파일에 포함)를 사용하는 방법을 보여 줍니다.

이 샘플 사용

이 샘플을 실행하기 위해 특별한 설정이 필요하지 않습니다. Visual Studio에서 솔루션을 연 다음 F5 키를 눌러 애플리케이션을 실행합니다.

이 샘플에는 두 개의 클라이언트 애플리케이션인 ImperativeCodeClientSample과 DesignerClientSample이 포함되어 있습니다. ImperativeCodeClientSample 클라이언트는 C# 명령적 코드를 사용하여 ExternalizedPolicy4 작업을 구성하고 실행하는 방법을 보여 줍니다. DesignerClientSample은 디자이너를 사용하여 ExternalizedPolicy4 작업을 구성하고 실행하는 방법을 보여 줍니다.

ImperativeCodeClientSample 애플리케이션 실행

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

  2. 솔루션 탐색기에서 명령적CodeClientSample 프로젝트를 마우스 오른쪽 단추로 클릭한 다음 시작 프로젝트로 설정을 선택합니다.

  3. 프로젝트를 실행하려면 Ctrl+ 키를 누릅니다.

DesignerClientSample 애플리케이션 실행

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

  2. 솔루션 탐색기에서 DesignerClientSample 프로젝트를 마우스 오른쪽 단추로 클릭한 다음 시작 프로젝트로 설정을 선택합니다.

  3. Ctrl+Shift+B를 눌러 프로젝트를 컴파일합니다.

  4. Ctrl+F5 키를 눌러 프로젝트를 실행합니다.