문제

프로젝트의 사전 빌드 단계로 여러 C# 파일을 전처리하고 메소드의 시작을 감지하며 기존 코드 전에 메서드 시작시 생성 된 코드를 삽입 할 수있는 기능이 필요합니다. 그러나 나는 방법의 개방을 감지하는 데 문제가 있습니다. 나는 처음에는 일치하기 위해 정규 표현을 시도했지만 너무 많은 잘못된 긍정적으로 끝났다.

반사를 사용하지만 MethodInfo 클래스는 원래 소스의 점을 참조하지 않습니다.

편집하다: 내가 여기서 실제로하려고하는 것은 메소드에 대한 사전 조건을 지원하는 것입니다. 나의 초기 생각은 메소드의 시작을 찾은 다음 사전 조건을 처리하기 위해 생성 된 코드를 삽입 할 수 있다는 것입니다.

더 좋은 방법이 있습니까? 필요한 경우 Visual Studio Addin을 만들 수 있습니다.

이것은 .NET 2.0 프로젝트입니다.

건배

도움이 되었습니까?

해결책

포스트 쇼트 또는 모노. 세실 당신이 이것을 할 수 있습니다 깨끗하게 C# Parser를 작성하지 않고 생성 된 코드를 변경하여 핵심 비즈니스가 아닐 것 같지 않습니다 ...

PostSharp로 결과를 얻지 못했지만 전제 조건이나 AOP와 같은 것을 구현하는 데 Mono보다 더 적합한 것을 추측 할 것입니다. 또는 DI 컨테이너와 같은 AOPY를 할 수 있습니다. 새끼

그러나 물론이 아이디어의 적용 가능성은 달라집니다. 방법이 시작될 때 코드를 삽입하려는 것 외에는 다른 말을하지 않았습니다 ...

편집 : 전제 조건을하려는 당신의 욕구에 비추어 ... .NET 4의 코드 계약 확실히 그 방향에 있습니다.

어떤 종류의 도구가 있습니까? 단일 mono.cecil.dll dll을 배송하는 것이 무엇입니까? 파서 이외의 다른 방법은 작업을위한 도구입니다.

다른 팁

더 쉬운 방법이 있다고 확신하지만 이것은 좋은 변명 일 수 있습니다. mgrammer 스핀을 위해.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top