2012-10-24 4 views
1

람다식이 Windows 워크 플로 코드 활동에 매개 변수로 전달 될 수 있는지 궁금합니다.워크 플로 코드 활동에 람다 식을 매개 변수로 전달

Windows 워크 플로 코드 활동에 매개 변수로 전달되는 람다 식을 기반으로 사용자 개체에 대해 ldap을 쿼리하려고합니다.

+0

무엇을 시도 했습니까? 매개 변수를 사용하는 활동을 실제로 만들었습니까? 오류가 있습니까? – Thelonias

+0

나는 그것을하는 법을 모른다. 누군가 코드를 공유 할 수 있는지 궁금하다. – user1358784

+0

글쎄, 모든 * 사용자 정의 코드 활동을 만들었습니까? 그렇지 않다면 먼저 코드 활동을 읽어야합니다. 온라인에서 많은 예제가 있습니다. – Thelonias

답변

1

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