최신 .NET Reflector를 사용하여 소스 코드를 거의 복구 할 수없는 내부 레거시 응용 프로그램을 디스 어셈블합니다. 나는 불쾌한 버그의 원인을 찾아 패치 할 필요가있다. Reflector는 프로젝트 구조를 다시 만들 때 평소대로 잘했으나 곧 속성 호출이 get_()
및 set_()
메서드 서명에 "확장 된"상태로 남겨져 소스 코드를 컴파일 할 수 없게된다는 것을 발견했습니다..NET Reflector 및 getters/setters 문제
처음에는 모든 get/set 호출에 문제가 있다고 생각했습니다. 그러나 좀 더 자세히 살펴보면 몇 가지 항목이 정상이며 다른 항목 (특히 OleDbCommand 및 Forms.Control 속성)은 get_()
및 set_()
으로 생성됩니다.
정규식으로 Visual Studio "검색/바꾸기"를 사용하면 이러한 문제를 해결할 수 있지만 어색합니다. 리플렉터가 올바르게 작동하도록하는 방법이 있습니까 ?
편집 1 - 아래의 샘플 문제 코드 :
/* Generated by .NET Reflector 6.1.0.11 */
/* The variable selectCommand is a OleDbCommand. */
string parameterName = "@P" + Convert.ToString(num);
selectCommand.set_CommandText(selectCommand.get_CommandText() + " WHERE SIGLA = " + parameterName);
/*
Expected something like this (as ugly as it may seem):
selectCommand.CommandText = selectCommand.CommandText + " WHERE SIGLA = " + parameterName;
*/
편집 2 - 조립이 릴리스 모드에 지어졌다.
레트로 목적으로 작성된 .Net의 버전은 무엇일까요? –
@ Jason, 2.0 프레임 워크 앱입니다. – Humberto
Jason Bock이 추가 한 FileGenerator를 사용해 보면 2.0 어셈블리에서 정상적으로 작동해야합니다. http://www.jasonbock.net/JB/CodeFileGenerator.aspx 또한 양식에 대한 디자이너 파일을 분리하는 편집 된 버전이 있습니다. http://jasonhaley.com/files/FileGenerator2.zip 자동 등록 정보와 같은 .net 3.5 기능). –