Castle Windsor와 함께 클래스에 속성을 적용하는 대신 코드를 사용하여 측면을 등록 할 수 있습니다 (Windsor에서 AOP로 메소드 차단을 사용할 때). 포스트 샤프에서도 똑같은가? 그것은 선호되는 일이지만, 애트리뷰트와는 반대로 한 곳에서 인터페이스/오브젝트와 일치하는 애스펙트를 갖는 것을 선호합니다.애트리뷰트를 사용하지 않고 포스트 샤프에서 애스펙트를 적용 할 수 있습니까?
업데이트 : 인터페이스 측면을 할당 할 수있는 경우이 있어요/객체가이에 비슷한 : 당신이 할 수 있다면
container.Register(
Component
.For<IService>()
.ImplementedBy<Service>()
.Interceptors(InterceptorReference.ForType<LoggingAspect>()).Anywhere
);
, 당신은 어셈블리에 특성을 배치 할 필요가 없습니다 수있는 옵션이 있습니다 것입니다/aspect를 적용하는 클래스/메소드. 그런 다음 어느 aspect가 어떤 클래스/메소드/etc에 적용되는지를 포함하는 하나의 코드 파일/클래스를 가질 수 있습니다.
이 기사는 여전히 클래스에 속성을 적용한 것 같습니다. Castle이 다이내믹 인젝션을 수행하는 방법을 살펴 보았습니다. http://blog.andreloker.de/post/2009/02/20/Simple-AOP-integrating-interceptors-into-Windsor.aspx. PostSharp로이 작업을 수행 할 수 있는지 궁금합니다. PostSharp는 컴파일 시간으로 자신의 양상을 짜기 때문에 그렇지 않은지 이해할 수 있습니다. –
달성하고자하는 목표는 무엇입니까? 귀하의 질문에 "환경 설정이 중요하지만, 애트리뷰트와 반대로 한 곳에서 인터페이스/오브젝트와 일치하는 애스펙트를 선호합니다." 그래서 나는 내가했던 해답을 주었다. 이제는 런타임에 애스펙트를 활성화 또는 비활성화하려는 것처럼 들립니다. 애스펙트를 사용하여 애스펙트를 적용하면 무엇이 중요합니까? 런타임 대 컴파일 시간에 대한 걱정이 있습니까? –
질문이 업데이트되었습니다. 그게 문제가 해결되면 알려줘. –