2012-06-20 3 views
2

적어도 50 개의 로컬 변수가있는 메소드가 있습니다. 문자열 값에서 변수를 선택해야합니다. C# 리플렉션으로 로컬 변수에 액세스 할 수 있습니까?리플렉션을 통해 지역 변수를 가져올 수 있습니까?

편집 :

void A() 
{ 
    var a1 = List<MyClass>(); 
    var a2 = List<MyClass>(); 
    var a3 = List<MyClass>(); 
    var a4 = List<MyClass>(); 
    var a5 = List<MyClass>(); 
    ........................ 
    ........................ 
    ........................ 
    // I have a string value found at runtime. The possible values of it are a1,a2,a3,a4,a5,.... I need to select one 
} 
+12

"나는 적어도 50 지역과 방법을 변수 "... 뭔가가 바로 거기에 없습니다! – Ric

+1

코드 예를 들려 줄 수 있습니까? 당신이 원하는 것을 할 수있는 더 좋은 방법이있을 것입니다. – Rawling

+4

코드를 수정하십시오. 더 악화시키는 법을 알려주지 않을 것입니다. –

답변

7

진짜 대답, 아니.

편집 후 OP : 명확한 번호. 컴 파일 시간에 이름이 '폐기'됩니다.

(Method.Body)에서 IL 명령을 사용할 수 있습니다.

Cecil Decompiler를 사용하여 변수가 무엇인지 '추측'하십시오 (이름은 없지만). 그러나 변수에서 (재사용) 임시 직원을 구분하는 것이 일반적 힘들 것입니다 및 모든 문법 설탕은 또한

를 분실 : 다른 의견과 같이 코드를 수정 말 :

+0

런타임시 IL 지역에서 현재 값으로 이동할 수 있습니까? –

+2

기다려주십시오. 질문이 닫힌 후에 당신은 어떻게 몰래 들었습니까 ?? – sbi

+1

@sbi 인종 조건? –

관련 문제