2014-12-17 3 views
1

안녕하세요, 표현식을 액션으로 변환 할 수 있는지 궁금합니다. 표현식을 사용하여 람다 식의 세부 정보를 얻고 동시에 다른 방법을 사용하여 실행해야합니다. 하나의 매개 변수 (Action 또는 Expression)를 사용하여 Expression 및 실제 액션을 가져와야합니다. BTW 내가 어떤 assert 유형에 대한 자세한 정보를 얻으려면이 작업이 필요합니다. 전 (Assert.true, Assert.False)표현식을 <Action>으로 변환하는 방법

public void otherMethod() 
{ 
    SomeMethod(() => Assert.Equals("Dog","Cat")); 
} 



public void SomeMethod(Expression<Action> neededAction) //or public void SomeMethod(Action neededAction) 
    {  

      //i need to run the neededAction and get the details whether what assert i did and the inputs i used for the assertion 

    } 

그래서 기본적으로 내가 작업을 실행하는 데 필요한 그리고 난 그 방법의 정보를 정기적으로 얻을 필요가있다. 감사합니다 ~

+2

'neededAction.Compile()' – leppie

+1

이것은 내가 필요한 것입니다. 정말 고마워요^_^ –

답변

1

식에 Compile() (으)로 전화해야합니다.

// Compile it. 
var actualNeededAction = neededAction.Compile(); 

// Execute it. 
actualNeededAction(); 
+0

오우. 오직 헤드 라인 부분 만이 해결되었습니다 ... 나는 적어도 이것을 부분적인 대답으로 남겨 둘 것입니다. – Reddog

+0

이것은 내가 필요한 것입니다. 정말 고마워요^_ ^ –