작업 2: 순차 워크플로에서 사용자 지정 활동 사용
이 자습서에서는 작업 1: 사용자 지정 활동 만들기에서 만든 WebTear 사용자 지정 활동을 WebTearWorkflow 순차 워크플로에 추가합니다.
이 워크플로에서는 호스트 응용 프로그램에서 URL 값에 대해 설정한 문자열 속성을 사용하여 WebTear 사용자 지정 활동에 정의된 UrlProperty에 바인딩합니다. WebTear 활동이 워크플로에서 실행되면 활동에서는 요청된 URL에서 텍스트를 다운로드하고 이벤트를 발생시킵니다. 이 작업의 워크플로에서는 이 이벤트에 대한 이벤트 처리기를 만들어 활동에서 다운로드한 데이터를 검색합니다.
참고
이 연습을 차례대로 수행하는 것이 좋지만 반드시 그럴 필요는 없습니다. 샘플 프로젝트를 열고 다음 단원의 단계를 진행하여 이 연습을 시작할 수 있습니다.
순차 워크플로 속성을 정의하려면
WebTearWorkflow 클래스에서 pageUrl이라는 private String 필드와 pageData라는 private String 필드를 만듭니다.
private string pageUrl; private string pageData;
WebTearWorkflow 클래스에서 webTearActivity라는 private WebTearActivity 필드를 만듭니다.
private WebTearActivity webTearActivity;
WebTearWorkflow 클래스에서 Url이라는 public String 속성을 만듭니다.
pageUrl 필드의 값을 반환하는 get 메서드와 pageUrl 필드의 값을 설정하는 set 메서드를 만듭니다.
public string Url { get { return pageUrl; } set { pageUrl = value; } }
WebTearWorkflow 클래스에서 Data라는 public String 속성을 만듭니다.
pageData 필드의 값을 반환하는 get 메서드와 pageData 필드의 값을 설정하는 set 메서드를 만듭니다.
public string Data { get { return pageData; } set { pageData = value; } }
WebTearActivity를 순차 워크플로에 추가하려면
WebTearWorkflow 클래스의 InitializeComponent 메서드에서 activityBind1이라는 지역 ActivityBind 변수를 만들고 해당 개체의 새 인스턴스를 만듭니다.
참고
이 단계에 대한 코드는 CanModifyActivities 속성을 true로 설정하는 코드 뒤에 추가되어야 합니다.
ActivityBind activitybind1 = new ActivityBind();
InitializeComponent 메서드에서 webTearActivity 개체의 새 인스턴스를 만듭니다.
this.webTearActivity = new WebTearActivity();
webTearActivity 개체의 Name 속성을 "webTearActivity" 문자열로 설정합니다.
this.webTearActivity.Name = "webTearActivity";
activityBind1 속성의 Name 속성을 "WebTearWorkflow" 문자열로 설정하고 Path 속성을 "url" 문자열로 설정합니다.
activitybind1.Name = "WebTearWorkflow"; activitybind1.Path = "Url";
webTearActivity_PageFinished라는 webTearActivity 개체에서 발생한 PageFinished 이벤트에 대한 이벤트 처리기를 추가합니다.
이 이벤트의 대리자는 PageFinishedEventHandler 대리자입니다.
참고
이 단계는 C# 응용 프로그램을 만드는 경우에만 필요합니다. Visual Basic 응용 프로그램에 대한 이벤트 처리기는 9단계에서 Handles 키워드를 사용하여 만듭니다.
this.webTearActivity.PageFinished += new WebTearActivity.PageFinishedEventHandler (this.webTearActivity_PageFinished);
webTearActivity 클래스에 정의된 SetBinding 메서드를 호출하여 UrlProperty 클래스 이름과 activityBind1 개체를 매개 변수로 해당 메서드에 전달합니다.
this.webTearActivity.SetBinding(WebTearActivity.UrlProperty, ((ActivityBind)(activitybind1)));
Activities 컬렉션에 정의된 Add 메서드를 호출하여 워크플로의 Activities 컬렉션에 webTearActivity 개체를 추가합니다.
this.Activities.Add(this.webTearActivity);
sender라는 Object 매개 변수와 e라는 PageFinishedEventArgs 매개 변수를 받아들이는 webTearActivity_PageFinished라는 새 private 메서드를 WebTearWorkflow 클래스에서 만듭니다.
webTearActivity_PageFinished 메서드에서 워크플로의 pageData 필드를 PageFinishedEventArgs 매개 변수에 정의된 Data 속성으로 설정합니다.
private void webTearActivity_PageFinished(object sender, PageFinishedEventArgs e) { this.pageData = e.Data; }
코드 컴파일
코드 컴파일에 대한 자세한 내용은 코드 컴파일을 참조하십시오.
작업 3: 사용자 지정 활동 호스트 응용 프로그램 수정에서는 호스트 응용 프로그램에서 단추를 클릭할 때 워크플로를 시작할 수 있도록 합니다.
참고 항목
작업
작업 3: 사용자 지정 활동 호스트 응용 프로그램 수정
기타 리소스
자습서: 사용자 지정 활동 만들기
Custom Activities
Copyright © 2007 by Microsoft Corporation. All rights reserved.