Tôi biết với Castle Windsor, bạn có thể đăng ký các khía cạnh (khi sử dụng phương thức chặn trong Windsor là AOP) bằng cách sử dụng mã thay vì áp dụng các thuộc tính cho các lớp. Có thể tương tự trong Postsharp không? Đó là một điều ưu tiên, nhưng thích có các khía cạnh phù hợp với các giao diện/đối tượng ở một nơi, trái ngược với các thuộc tính trên tất cả.Bạn có thể áp dụng các khía cạnh trong PostSharp mà không sử dụng các thuộc tính?
Cập nhật: Tò mò nếu tôi có thể gán các khía cạnh để giao diện/đối tượng tương tự như này:
container.Register(
Component
.For<IService>()
.ImplementedBy<Service>()
.Interceptors(InterceptorReference.ForType<LoggingAspect>()).Anywhere
);
Nếu bạn có thể làm điều này, bạn sẽ có tùy chọn KHÔNG phải đặt thuộc tính trên cụm/lớp/phương pháp áp dụng các khía cạnh. Sau đó tôi có thể có một tệp/lớp mã có chứa các khía cạnh nào được áp dụng cho lớp/phương thức/v.v.
Các bài viết này dường như vẫn áp dụng thuộc tính cho lớp học. Tôi đã tìm kiếm dọc theo dòng cách mà Dynamic Injection động: http://blog.andreloker.de/post/2009/02/20/Simple-AOP-integrating-interceptors-into-Windsor.aspx. Tôi chỉ tò mò nếu bạn có thể làm điều này với PostSharp. Kể từ khi PostSharp dệt các khía cạnh của họ như là thời gian biên dịch, có thể hiểu được nếu nó không. –
Bạn muốn đạt được điều gì? Câu hỏi của bạn nói rằng "Đó là một điều ưu tiên, nhưng muốn có các khía cạnh phù hợp với các giao diện/đối tượng ở một nơi, trái ngược với các thuộc tính trên tất cả." đó là lý do tôi đưa ra câu trả lời tôi đã làm. Bây giờ có vẻ như bạn muốn bật hoặc tắt các khía cạnh khi chạy. Có vấn đề gì nếu các khía cạnh được áp dụng bằng các thuộc tính? Bạn có lo ngại về thời gian chạy so với thời gian biên dịch không? –
Đã cập nhật câu hỏi. Hãy cho tôi biết nếu điều đó xóa mọi thứ. –