2012-03-17 3 views
5

사용자 정의 LogAttribute를 구현합니다.이 클래스는 클래스의 각 메소드 시작과 끝 부분에 정보를 기록하며 오류도 기록해야합니다. 클래스 위에 속성을 적용하고 싶습니다.클래스에 사용자 정의 LogAttribute를 구현하는 방법

나는 PostSharp를 보았습니다. 하지만 PostSharp 또는 유사한 라이브러리를 사용하는 대신 내 자신의 사용자 지정 로그 특성을 갖고 싶습니다.

성능이 주요 키이므로 LogAttribute가 성능에 영향을 미치지 않아야합니다.

IMessageSync에 대해 읽었지만 성능에 영향을줍니다.

MVC에서는 CustomFilters를 얻습니다. 여기에서 LogActionHandler를 사용할 수 있습니다. LogActionHandler는 각 Action 메서드의 시작과 끝에서 실행됩니다. 비슷한 ASP.Net 웹 양식 구현 싶습니다.

샘플 코드를 제공하여 누구든지 나를 도울 수 있습니까?

+4

가 바퀴를 재발견하지 말고 시간과 지역 사회 도서관 – sll

+0

는 묘기 로그 속성에 사용할 수있는 무료 라이브러리에 의해 잘 테스트 검증 사용을 참조하십시오? PostSharp가 지급됩니다 ..... – user1233802

+2

@ user1233802 : PostSharp는 무료 "시작 버전"을 가지고 있습니다.이 버전을 사용하면 원하는대로 사용자 정의 'LogAttribute'를 구현할 수 있으며, 모두 완료되었으므로 성능에 영향을 미치지 않습니다 컴파일 시간. –

답변

2

Unity - Microsoft의 IoC/Dependency Injection Container는 메소드 차단을 허용합니다. 프로 http://hmadrigal.wordpress.com/2010/12/25/aspect-oriented-programming-and-interceptor-design-pattern-with-unity-2/

:

여기 당신이 원하는대로 같은 않는 "DiagnosticsInterceptor"의 예는 무료

콘 : 그것은 유니티/DI/IOC의 패턴을 필요로한다. 클래스에 인터페이스 또는 가상 메소드가 있어야합니다.

불행히도 ASP.NET 컨트롤에는 맞지 않습니다. 그래서이 방법은 사용자 정의 클래스에 대한 작동합니다 이 Intercept Unity 2.0 HandlerAttribute without an interface

관련 문제