전처리 C# - 검출 방법
-
19-09-2019 - |
문제
프로젝트의 사전 빌드 단계로 여러 C# 파일을 전처리하고 메소드의 시작을 감지하며 기존 코드 전에 메서드 시작시 생성 된 코드를 삽입 할 수있는 기능이 필요합니다. 그러나 나는 방법의 개방을 감지하는 데 문제가 있습니다. 나는 처음에는 일치하기 위해 정규 표현을 시도했지만 너무 많은 잘못된 긍정적으로 끝났다.
반사를 사용하지만 MethodInfo 클래스는 원래 소스의 점을 참조하지 않습니다.
편집하다: 내가 여기서 실제로하려고하는 것은 메소드에 대한 사전 조건을 지원하는 것입니다. 나의 초기 생각은 메소드의 시작을 찾은 다음 사전 조건을 처리하기 위해 생성 된 코드를 삽입 할 수 있다는 것입니다.
더 좋은 방법이 있습니까? 필요한 경우 Visual Studio Addin을 만들 수 있습니다.
이것은 .NET 2.0 프로젝트입니다.
건배
해결책
포스트 쇼트 또는 모노. 세실 당신이 이것을 할 수 있습니다 깨끗하게 C# Parser를 작성하지 않고 생성 된 코드를 변경하여 핵심 비즈니스가 아닐 것 같지 않습니다 ...
PostSharp로 결과를 얻지 못했지만 전제 조건이나 AOP와 같은 것을 구현하는 데 Mono보다 더 적합한 것을 추측 할 것입니다. 또는 DI 컨테이너와 같은 AOPY를 할 수 있습니다. 새끼
그러나 물론이 아이디어의 적용 가능성은 달라집니다. 방법이 시작될 때 코드를 삽입하려는 것 외에는 다른 말을하지 않았습니다 ...
편집 : 전제 조건을하려는 당신의 욕구에 비추어 ... .NET 4의 코드 계약 확실히 그 방향에 있습니다.
어떤 종류의 도구가 있습니까? 단일 mono.cecil.dll dll을 배송하는 것이 무엇입니까? 파서 이외의 다른 방법은 작업을위한 도구입니다.
다른 팁
더 쉬운 방법이 있다고 확신하지만 이것은 좋은 변명 일 수 있습니다. mgrammer 스핀을 위해.