2012-03-14 5 views
0

나는 두 개의 사용자 정의 NativeActivity 각각 ActivityDesigner와 (루트 및 최종)이 있습니다중첩 ActivityDesigner는 실행

[ContentProperty("Body")] 
[Designer(typeof(RootActivityDesigner))] 
public class RootActivity : NativeActivity 
{ 
    public Activity Body { get; set; } 

    protected override void Execute(NativeActivityContext context) 
    { 
    if (this.Body != null) 
    { 
     context.ScheduleActivity(this.Body); 
    } 
    } 
} 

및 최종 NativeActivity는 내가 가진 : 루트 NativeActivity에서 enter image description here

을 내가 가진

[Designer(typeof(FinalActivityDesigner))] 
public class FinalActivity : NativeActivity 
{ 
    protected override void Execute(NativeActivityContext context) 
    { 
    //Do Stuff 
    } 
} 

그래서 새 워크 플로를 만들 때 먼저 RootActivity를 드래그하고 Root Body와 다른 모든 활동을 끌어옵니다. 실행되지 않는 FinalActivity를 제외하고는 괜찮습니다. 따라서 "do stuff"는 맞지 않습니다.

무엇이 잘못 되었나요?

나는 context.ScheduleActivity (this.Body)를 호출해야한다; FinalActivity에 대해서도?

고마워요!

답변

1

여기서 FinalActivity는 트리에 있습니다. 디자이너에서 RootActivity의 일부인 것처럼 보이지만 소스 코드에는 FinalActivity가 포함되어 있지 않습니다.

+0

같은 일을 할 수있는 트리의 맨 아래에 있습니다. <수액 : WorkflowItemPresenter 항목 = "{바인딩 경로 = ModelItem.Body}"HintText = "몸"/> <내 : FinalActivityDesigner 높이 = "25"HorizontalAlignment로 = "왼쪽"X 여기에 디자이너 마크 업입니다 : Name = "FinalActivityDesigner1"VerticalAlignment = "Bottom"/>

+0

다시 흥미로운 활동 트리입니다. 그것을 실행하는 책임이있는 사람은 누가 부모인가? – Maurice

0

나는 결승전이 어디서 무엇인지 알지 못하지만, 은 어떻게 든 그것을 예약하기 위해을 가지고 있습니다. RootActivity가 제어 엔티티 인 경우,이

public class RootActivity : NativeActivity 
{ 
    public Activity Body { get; set; } 
    public Activity Final { get; set; } 

    protected override void Execute(NativeActivityContext context) 
    { 
    if (this.Body != null) 
    { 
     context.ScheduleActivity(this.Body, OnBodyComplete); 
    } 
    } 
    // callback fired after Body completes execution 
    private void OnBodyComplete(NativeActivityContext context, 
           ActivityInstance completedInstance) 
    { 
     context.ScheduleActivity(Final); 
    } 

} 
+0

이 작업을 시도했지만 여전히 작동하지 않습니다. WF Persistance 데이터베이스에서이 오류를 발견했습니다. System.ArgumentNullException - 값을 null로 설정할 수 없습니다. 매개 변수 이름 : activity. 줄에 용의자가 있습니다. "공개 활동 Final {get; set;}" WF가 FinalActivity와 어떻게 연결됩니까? –