2009-06-25 4 views
5

.NET 3.0 (또는 이전 버전)에서 메서드의 문자열 표현을 가져 오는 방법이 있습니까? MethodBody 객체에서 IL 바이트 배열을 얻을 수 있다는 것을 알고 있지만 VS에서 내 눈에 나타나는 것처럼 본질적으로 메서드 본문을 나타내는 문자열을 얻는 데 관심이 있습니다.C# 메서드의 문자열 표현

내가 런타임에 CodeMemberMethods에 방법을 변환 할 수있는 방법이 있다면 볼 수 된 CodeDom 네임 스페이스에 주위를 찌르고했지만, 나는 건조 지금까지 왔어요.

의견이 있으십니까? 매우 복잡한 작업이다

답변

12

. 기본적으로 코드에 reflector을 다시 쓰는 것을 보게 될 것입니다. 모든 IL이 되돌릴 수있는 것은 아닙니다.

짧은 대답

는 "아니, 아무것도 내장 없다"입니다.

람다의 짝수 표현 트리는 일 수 없습니다.은 적절한 문자열로 쉽게 되돌려 놓을 수 없습니다.

2

리플렉터 API로 파고 들어보십시오 (레드 게이트가 가져온 후에도 사용할 수 있는지 확인할 수 있습니다).

아직도 당신이 성공하더라도 당신은 지역 변수의 이름, 의견 또는 일부 서식이 같은 원래의 정보의 일부를 잃어 버리게된다. 컴파일시 버려지

기본적으로 모든 것이 영원히 손실됩니다.