Wiem, że w Castle Windsor można rejestrować aspekty (podczas przechwytywania metod w Windsor jako AOP) za pomocą kodu zamiast stosowania atrybutów do klas. Czy to samo możliwe w Postsharp? Jest to rzeczą preferowaną, ale preferuje się, aby aspekty były dopasowane do interfejsów/obiektów w jednym miejscu, a nie do wszystkich atrybutów.Czy możesz zastosować aspekty w PostSharp bez używania atrybutów?
Aktualizacja: Ciekawy czy mogę przypisać aspekty interfejsów/obiekty podobne do tego:
container.Register(
Component
.For<IService>()
.ImplementedBy<Service>()
.Interceptors(InterceptorReference.ForType<LoggingAspect>()).Anywhere
);
Jeśli można to zrobić, to masz możliwość nie trzeba umieszczać atrybutów zespołów/klasa/metody stosowania aspektów. Mogę wtedy mieć jeden plik/klasę kodu, który zawiera które aspekty są stosowane do której klasy/metody/etc.
Artykuły te nadal wydają się stosować do klasy atrybut. Patrzyłem na to, jak wtrysk Castle Does Dynamic: http://blog.andreloker.de/post/2009/02/20/Simple-AOP-integrating-interceptors-into-Windsor.aspx. Jestem ciekawy, czy możesz to zrobić w PostSharp. Ponieważ PostSharp splata ich aspekty jako czas kompilacji, może zrozumieć, jeśli tak nie jest. –
Czego chcesz osiągnąć? Twoje pytanie brzmi: "Jest to kwestia preferencji, ale preferujemy, aby aspekty były dopasowane do interfejsów/obiektów w jednym miejscu, w przeciwieństwie do atrybutów na całym." dlatego podałem odpowiedzi, które zrobiłem. Wygląda na to, że chcesz włączać lub wyłączać aspekty w środowisku wykonawczym. Jakie ma znaczenie, czy aspekty są stosowane przy użyciu atrybutów? Czy masz wątpliwości dotyczące czasu kompilacji i kompilacji? –
Zaktualizowane pytanie. Daj mi znać, jeśli to rozwiąże sprawę. –