我有一个Workflow 4活动,可以在从我的基类继承的任意数量的类上运行。因此,活动自然是通用的。与ForEach或AddToCollection活动类似,我的活动需要一个类型参数。
我的问题是:我可以使用XAML在设计器中创建此活动吗?请记住,这是一个复合活动,因此设计师似乎是最佳选择。
如果我要在代码中创建它,它将如下所示:
public class MyGenericActivity<T> : Activity where T : MyBaseClass
{
//args would go here
public MyGenericActivity()
{
this.Implementation = () => new Sequence
{
Activities = { //... }
};
}
}
虽然这个解决方案可行,但维护肯定会很痛苦,而且你不会以这种方式获得设计师的任何“细节”。
答案 0 :(得分:1)
XAML堆栈可能支持它(不确定),但在VS 10中,工作流设计师绝对不允许你这样做。
答案 1 :(得分:0)
不确定你能不能,但我怀疑不行。但即使你能为什么这么做? xaml活动只是标记和组合,没有代码,那么你将如何使用泛型类型。
使用您的活动的人的设计时间体验与您创建活动的方式无关。只需添加一名设计师,即可为用户提供您喜欢的任何设计时间体验。您可以使用WorkflowItemsPresenter让他们添加多个子活动。