动态编译XAML - Linq错误

本文关键字:Linq 错误 XAML 编译 动态 | 更新日期: 2023-09-27 17:49:22

我有一个XAML作为字符串,我编译然后执行。

DynamicActivity workflowActivity = (DynamicActivity)ActivityXamlServices.Load(new StringReader(xaml));

这个工作流有一个Person对象(类型:Namespace workflow . model .Person)作为输入,所以我传递参数并执行它。

Dictionary<String,Object> parameters = new Dictionary<String,Object>();
Workflow.Model.Person person = new Workflow.Model.Person();
person.FirstName = "John";
parameters["Person"] = person;
WorkflowInvoker.Invoke(workflowActivity, parameters);

我得到以下异常:

[系统。ArgumentException] = {"Property "系统。字符串FirstName'没有定义类型Workflow.Model.Person'"}

由System.Linq.Expressions.Expression抛出的错误。Property(Expression Expression, PropertyInfo Property).

我做了很多尝试都没有成功。如果我在工作流中删除属性FirstName的访问权限,它会正确执行。根据建议,我添加了引用的导入,但它不起作用:
VisualBasicSettings.Default.ImportReferences.Add(new VisualBasicImportReference()
{
    Assembly = typeof(Person).Assembly.FullName,
    Import = typeof(Person).Namespace
});

欢迎输入。

谢谢。

动态编译XAML - Linq错误

我发现问题了。包含Person类的DLL被加载到AppDomain中两次。因此,编译后的XAML引用了同一类型的不同实例,因此抛出了此错误。

相关文章: