Windows WF:如何使用“ ActivityDelegate”从不是从“ ActivityWithResult”派生的活动中返回“ OutArgument”

时间:2019-03-11 12:40:47

标签: c# workflow-foundation

当前,我正在使用one-hot-encodedimport keras import numpy as np import tensorflow as tf # You could actually make it a lambda function as well def weighted_crossentropy(labels, logits): return tf.losses.softmax_cross_entropy( labels, logits, weights=tf.abs(tf.argmax(logits, axis=1) - tf.argmax(labels, axis=1)), ) model = keras.models.Sequential( [ keras.layers.Dense(32, input_shape=(10,)), keras.layers.Activation("relu"), keras.layers.Dense(10), keras.layers.Activation("relu"), keras.layers.Dense(5), ] ) data = np.random.random((32, 10)) labels = keras.utils.to_categorical(np.random.randint(5, size=(32, 1))) model.compile(optimizer="rmsprop", loss=weighted_crossentropy) model.fit(data, labels, batch_size=32) 类在自定义ActivityAction内执行一些活动。 ActivityFunc仅接受ActivityActivityAction仅接受源自DelegateInArgument的活动,并且仅接受一个ActivityFunc

我的问题是我如何以相同的方式执行不是从ActivityWithResult派生而是具有输出参数(例如DelegateOutArgument)的Activity。同一问题可能适用于具有多个输出参数的任何ActivityWithResult

当前的解决方法是使用一个自定义类,该类将这些输出参数作为属性保存,并将其作为System.Activities.Statements.Assign传递,但是我需要更复杂的解决方案。

一个Activity派生的类属性:

InArgument

设计师代码:

NativeActivity

解决方法:

public ActivityFunc<string> ExampleActivityDelegate { get; set; } =
    new ActivityFunc<string>() { Result = new DelegateOutArgument<string>("text") };

public ActivityAction<string> ExampleActivityDelegate { get; set; } =
    new ActivityAction<string>() { Argument = new DelegateInArgument<string>("text") };

然后更改结果。在子活动中输入文字。

更新

问题的第一部分有一个错误的陈述。 <sap:WorkflowItemPresenter Item="{Binding ModelItem.ExampleActivityDelegate.Handler, Mode=TwoWay}" AllowedItemType="a:Activity" HintText="Drop activity here"/> 属性的类型确实为class ActivityResult { public string Text; } public ActivityAction<ActivityResult> ExampleActivityDelegate { get; set; } = new ActivityAction<ActivityResult>() { Argument = new DelegateInArgument<ActivityResult>("result") }; ,它可以接受任何ActivityFunc.Handler

问题的第二部分,是否存在任何适用的标准机制来使用ActivityDelegate传递多个Activity

0 个答案:

没有答案