2011-09-28 11 views
4

C#에서 이와 같은 메서드를 작성했습니다.메서드 매개 변수 C#

MethodBase method = MethodBase.GetCurrentMethod(); 
string key =""; 
for (int i = 0; i < method.GetParameters().Length; i++) 
{ 
    key=method.GetParameters().Name; 
    // need value of parameter here    
} 

위의 코드를 통해 매개 변수 이름이 나타납니다. 내 질문은 : 어떻게 내 방법에 오는 매개 변수의 값을 얻을 수 있습니까?

답변

5

디버거 API를 사용하지 않고는 (적어도 뚜렷한 의미는 아님) 할 수 없습니다. 이 정보는 리플렉션을 통해 사용할 수 없습니다. 특히 가져 오는 객체 인 MethodBase은 모든 호출에서 동일한 객체가 될 수 있습니다.

(난 당신이 중 하나를 표시했습니다 당신이 작성한 방법은 매우라고 생각하지 않습니다 정말 희망 당신이 그와 같은 루프 내부 GetParameters를 호출하지 않는,하지만이 지엽적 인 문제이다 .)

+0

먼저, 감사합니다. 언급 한대로 어떻게 디버거 API를 사용하여 작성할 수 있습니까? – Selo

+0

@Selo : 그것은 내가 사용했던 것이 아니지만 [this page] (http://www.developerfusion.com/article/4692/how-the-net-debugger-works/)에서 살펴보십시오. 나는 .NET 4에서 어느 정도 변한 지 알지 못한다. –

관련 문제