コンパイルして実行する文字列として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]={"プロパティ'System.StringFirstName'はタイプ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
});
どんな入力でも大歓迎です。
ありがとう。