2012-12-21 28 views
1

我有一個XAML作爲字符串,我編譯然後執行。動態編譯XAML - Linq錯誤

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

該工作流具有Person對象(類型:命名空間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] = { 「屬性 'System.String姓' 的類型Workflow.Model.Person'沒有定義」}

的System.Linq.Expressions.Expression.Property(表達式,PropertyInfo屬性)引發錯誤。

我已經嘗試了許多事情沒有成功。如果我刪除工作流中的屬性FirstName的訪問權限,它將正確執行。以下建議我添加了引用的導入,但它沒有工作:

VisualBasicSettings.Default.ImportReferences.Add(new VisualBasicImportReference() 
{ 
    Assembly = typeof(Person).Assembly.FullName, 
    Import = typeof(Person).Namespace 
}); 

任何輸入表示讚賞。

謝謝。

回答

0

我發現了這個問題。包含類Person的DLL被加載到AppDomain中兩次。所以編譯的XAML引用了一個相同類型的不同實例,並拋出這個錯誤。