我想知道 Lambda 表达式是否可以作为参数传递给 Windows 工作流代码活动?
我正在尝试根据 lambda 表达式查询 ldap 的用户对象,该表达式将作为参数传递给 Windows 工作流代码活动。
我想知道 Lambda 表达式是否可以作为参数传递给 Windows 工作流代码活动?
我正在尝试根据 lambda 表达式查询 ldap 的用户对象,该表达式将作为参数传递给 Windows 工作流代码活动。
lamda 表达式只是一个参考,像传递任何其他数据一样传递它。
class Program
{
static void Main(string[] args)
{
var workflow = new ExecuteFunc<int>();
var inputs = new Dictionary<string, object>();
inputs["Func"] = new Func<int, int>(maxValue =>
{
var rnd = new Random(Environment.TickCount);
return rnd.Next(maxValue);
});
inputs["MaxValue"] = 100;
WorkflowInvoker.Invoke(workflow, inputs);
}
}
public class ExecuteFunc<T> : CodeActivity<T>
{
public InArgument<int> MaxValue { get; set; }
public InArgument<Func<int, T>> Func { get; set; }
protected override T Execute(CodeActivityContext context)
{
var func = Func.Get(context);
var maxValue = MaxValue.Get(context);
var result = func(maxValue);
Console.WriteLine(result);
return result;
}
}