我有两个“松散”的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支持,有没有办法完成此操作?
如果没有,我的替代方案是什么?
答案 0 :(得分:0)
我遇到了完全相同的问题并找到了解决方案。
这是我的XAML看起来像这样:
<Activity ... xmlns:mylib="clr-namespace:MyProject.ActivityLibrary">
<mylib:MyCustomActivity ... />
</Activity>
对我有用的技巧是在命名空间中指定包含我的自定义活动的程序集。
将名称空间更改为此功能使其正常工作:
xmlns:mylib="clr-namespace:MyProject.ActivityLibrary;assembly=MyProject.ActivityLibrary"