0

我在 a 中有一堆命名值参数Dictionary<string, object>,我想将它们传递到不同的工作流程中。问题是每个工作流只需要字典中属性的一个子集,而且我事先不知道哪个工作流需要哪些属性。

问题是,当我使用要绑定的字典调用 WorkflowRuntime.CreateWorkflow 时,它失败了:

The activity '<workflow name>' has no public writable property named '<property name>'

我知道这意味着什么。未定义工作流中的属性,因为此特定工作流不需要该特定属性(其他工作流可能)。

无论如何将字典绑定到工作流属性,以及未在工作流中定义的 IGNORE 属性?

4

1 回答 1

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);

这样,您的工作流程就可以从字典中获取感兴趣的字典项目。

于 2009-05-26T07:43:48.413 回答