2010-08-05 3 views
4

기본 클래스에서 상속 한 모든 클래스에서 실행할 수있는 Workflow 4 활동이 있습니다. 따라서 활동은 자연스럽게 일반적인 것입니다. ForEach 또는 AddToCollection 활동과 마찬가지로 My Activity에는 유형 매개 변수가 필요합니다.XAML에서 WF4 일반 활동을 선언 할 수 있습니까?

내 질문은 :이 활동을 XAML로 디자이너에서 만들 수 있습니까? 이것은 복합 활동이므로 디자이너가 최선의 선택 인 것으로 생각하십시오. 이 솔루션이 작동 할 동안

public class MyGenericActivity<T> : Activity where T : MyBaseClass 
{ 
    //args would go here 
    public MyGenericActivity() 
    { 
     this.Implementation =() => new Sequence 
     { 
     Activities = { //... } 
     }; 
    } 
} 

은, 유지 보수가 가장 확실하게 고통 스러울 것입니다 그리고 당신은 "미묘한"중 하나를하지 않는 : 나는 코드를 작성한다면

,이 같을 것이다 이런 식으로

+0

글쎄, 불행히도, 나는 이것을하는 좋은 방법을 찾지 못했습니다. 그래서, 나는이 복합 활동을 포함하여 어떤 액티비티를 리팩토링해야만했다. 그래서 그들은 InArgument 을 가져오고 클래스의 인스턴스는 System.Object로 전달된다. 이것은 입안에 정말로 나쁜 맛을 남겨 둡니다. 그러나 그것이 내가 똑같은 일을하는 20 ~ 30 개의 xaml 워크 플로를 갖는 것을 막을 수있는 유일한 방법입니다. 입력 해 주셔서 감사합니다. –

답변

1

XAML 스택은 아마도 그것은 (확실하지 않은)를 지원 수 있지만 VS 10 워크 플로 디자이너는 확실히 당신이 작업을 수행하지 않습니다.

0

가능한지 확실하지는 않지만 확실하지는 않습니다. 하지만 왜 그랬 겠지? xaml 활동은 마크 업 및 구성 일뿐 코드가 없으므로 generic 형식을 어떻게 사용합니까?

활동을 사용하는 사람의 디자인 시간 경험은 활동을 작성한 방법과 관련이 없습니다. 디자이너를 추가하고 사용자가 좋아하는 디자인 타임 경험을 제공하십시오. WorkflowItemsPresenter를 사용하여 여러 자식 활동을 추가 할 수 있습니다.

+0

나는 이것을 할 수 있다는 어떠한 증거도 찾지 못했다. 질문과 관련하여 "... 일반 유형을 어떻게 사용 하시겠습니까?"그 유형을 다른 유형의 활동에 전달합니다. 여러분은 타입 인자를 취하는 많은 액티비티 (대개 CodeActivity)가 이미 있음을 알 수 있습니다. 내 xaml에 형식을 지정하지 않아도되지만 내 모든 유형에 대해 동일한 xaml을 다시 사용할 수 있으면 좋을 것입니다. 그런 식으로, 내 워크 플로 호스트는 사용할 형식을 결정할 수 있으며 모든 형식에 대해 동일한 xaml을 다시 디자인 할 필요가 없습니다. 또한 현재의 문제는 디자인 타임 경험이 아닙니다. 코드 재사용입니다. –

+0

의미가 있지만 나는 이것을 할 어떤 방법이 있는지 모른다. – Maurice

관련 문제