我有一個Workflow 4活動,可以在任何數量的類上繼承我的基類。所以,這個活動自然就是通用的。與ForEach或AddToCollection活動類似,我的活動需要一個類型參數。可以在XAML中聲明WF4通用活動嗎?
我的問題是:我可以使用XAML在設計器中創建此活動嗎?請記住這是一個複合活動,所以設計師似乎是最好的選擇。
如果我在代碼來創建它,它應該是這樣的:
public class MyGenericActivity<T> : Activity where T : MyBaseClass
{
//args would go here
public MyGenericActivity()
{
this.Implementation =() => new Sequence
{
Activities = { //... }
};
}
}
雖然這種解決方案會工作,維護將肯定是痛苦的,你沒有得到任何的「細微」的這樣的設計師。
不幸的是,我還沒有找到一個好辦法來做到這一點。所以,我不得不重構一些活動(包括這個複合活動),因此他們需要一個InArgument並且類的實例作爲System.Object傳遞。這在我的嘴裏留下了一個非常糟糕的口味,但這是我能想出的唯一方法,它可以讓我們避免使用20到30個xaml工作流程來完成同樣的任務。 感謝您的輸入。 –
2010-08-10 15:38:20