2014-06-12 7 views
0

누군가가 올바른 방향으로 나를 가리킬 수 있기를 바랍니다. 우리 데이터베이스의 일부 필드를 int에서 bigint로 변환하는 중입니다. 이는 곧 코드베이스의 해당 필드를 int에서 long으로 업데이트해야 함을 의미합니다. 문제는 코드베이스가 대량입니다. 우리는 수 백개의 프로젝트를 가지고 있으며 수동으로 검색하면 지루할 것입니다. 그래서 어셈블리와 함께 제공 될 때 특정 문자열 (이 경우 필드 이름)에 대한 모든 코드를 검색 할 수있는 응용 프로그램을 작성하려고합니다. 리플렉션을 사용하여 메서드를 호출하고 속성 값 등을 얻었지만 컴파일 된 어셈블리의 실제 코드에서 값을 검색하는 데 사용할 수 있습니까? 값은 속성, 상수, 메서드 등 무엇이든있을 수 있습니다. 필자도 ildasm을 살펴 봤지만 특정 문자열 값을 검색하는 방법을 제공하지는 않습니다. 이견있는 사람?컴파일 된 어셈블리의 내용 검사

+1

나는 마이크로 소프트의 컴파일러 인 'Roslyn'을 살펴볼 것을 제안한다. AST (Abstract Syntax Tree)를 사용하면 코드를 구문 분석하고 속성, 상수, 메서드 등을 검색하는 데 도움이됩니다. 여기에서 확인할 수 있습니다. http://msdn.microsoft.com/en-us/ vstudio/roslyn.aspx –

+0

나는 그것이 "방대한"방법을 설명해 주었다고 생각합니다 :/이것은 기술적 인 부채입니다. 리팩토링을 시작할 시간입니다. –

답변

0

당신을 위해이 작업을 수행 할 수있는 몇 가지 제품이 있습니다

Telerik의 JustDecompile (http://www.telerik.com/products/decompiler.aspx)를 유료

레드 게이트의 리플렉터 (http://www.red-gate.com/products/dotnet-development/reflector/)는, 무료

JetBrains의 'dotPeek (http://www.jetbrains.com/decompiler/), 무료

나는 primari 리플렉터는 습관 때문에 사용하지 않기 때문에 1.) 나는 얼마전에 그것을 지불했다. 2.) 나는 그것을 무료로 사용하기 때문에 너무 힘들어 버릇이있다. 또한 어셈블리를 소스 파일로 직접 내보내고 거기에서 조작 할 수 있습니다.