如何从另一个“松散的Xaml”定义的活动中调用“松散的Xaml”定义的活动?

时间:2012-01-17 16:16:17

标签: workflow workflow-foundation-4

我有两个“松散”的XAML文件,每个文件都声明性地定义复合活动,该活动由一些自定义(编译)的代码活动组成。

现在,我希望第一个“松散”Xaml中定义的活动“包含”第二个“松散”Xaml中定义的活动。

但是,我不知道如何将两个活动“粘合”在一起,以便第一个活动知道从第二个Xaml正确加载活动。

所以在致电:

XamlXmlReader xr = new XamlXmlReader(@"FirstLooseActivity.xaml");
ActivityBuilder ab = (ActivityBuilder)XamlServices.Load(ActivityXamlServices.CreateBuilderReader(xr));

我最终得到了一个XamlObjectWriterException(在我将所有相关程序集加载到我的托管应用程序之后):

Cannot create unknown type '{clr-namespace:SecondLooseActivity}MyActivity

由于MS中没有Xlink支持,有没有办法完成此操作?

如果没有,我的替代方案是什么?

1 个答案:

答案 0 :(得分:0)

我遇到了完全相同的问题并找到了解决方案。

这是我的XAML看起来像这样:

<Activity ... xmlns:mylib="clr-namespace:MyProject.ActivityLibrary">
    <mylib:MyCustomActivity ... />
</Activity>

对我有用的技巧是在命名空间中指定包含我的自定义活动的程序集。

将名称空间更改为此功能使其正常工作:

xmlns:mylib="clr-namespace:MyProject.ActivityLibrary;assembly=MyProject.ActivityLibrary"