【问题标题】:Dynamic Compiling of XAML - Linq ErrorXAML 的动态编译 - Linq 错误
【发布时间】:2012-12-27 16:53:07
【问题描述】:

我有一个 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);

我得到以下异常:

[System.ArgumentException] = {"没有为类型 Workflow.Model.Person' 定义属性 'System.String FirstName'"}

错误是由 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
});

感谢任何输入。

谢谢。

【问题讨论】:

    标签: c# linq workflow-foundation


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2011-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-06
      • 2014-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多