我在Dictionary<string, object>
中有一堆命名值参数,我想将其传递到不同的工作流程中。问题是每个工作流程只需要字典中的一部分属性,我不知道哪个工作流程需要哪个属性。
问题是,当我使用要绑定的字典调用WorkflowRuntime.CreateWorkflow时,它会失败并显示:
The activity '<workflow name>' has no public writable property named '<property name>'
我知道这意味着什么。未定义工作流中的属性,因为此特定工作流不需要该特定属性(其他工作流可能)。
是否有将字典绑定到工作流属性以及未在工作流上定义的IGNORE属性?
答案 0 :(得分:1)
为什么不将字典传递给工作流实例?然后,您的工作流程定义必须具有该字典的属性。
var inputs = Dictionary<string, YOUR_CUSTOM_TYPE>();
// ...
// fill your dictionary according to the context
// ...
var inputParams = new Dictionary<string, object>();
inputParams["WF_PROP_NAME"] = inputs;
var wfInstance = wfRuntime.CreateWorkflow(WF_TYPE, inputParams);
这样,您的工作流程就可以从字典中获取感兴趣的字典项目。