Phần mềm của chúng tôi có một số lớp nên được tìm thấy động thông qua sự phản chiếu. Tất cả các lớp đều có một hàm tạo với một chữ ký cụ thể thông qua đó mã phản chiếu sẽ khởi tạo các đối tượng.
Tuy nhiên, khi ai đó kiểm tra xem phương thức có được tham chiếu hay không (ví dụ qua Visual Studio Code Lens), tham chiếu qua phản chiếu không được tính. Mọi người có thể bỏ lỡ các tài liệu tham khảo của họ và loại bỏ (hoặc thay đổi) các phương thức rõ ràng không được sử dụng.
Làm thế nào chúng ta nên đánh dấu / phương pháp tài liệu dự định được gọi thông qua sự phản ánh?
Lý tưởng nhất, phương pháp nên được đánh dấu theo cách mà cả đồng nghiệp và Visual Studio / Roslyn và các công cụ tự động khác 'thấy' rằng phương thức này được dự định sẽ được gọi thông qua sự phản chiếu.
Tôi biết hai tùy chọn mà chúng ta có thể sử dụng nhưng cả hai đều không hoàn toàn thỏa mãn. Vì Visual Studio không thể tìm thấy các tài liệu tham khảo:
- Sử dụng Thuộc tính tùy chỉnh và đánh dấu hàm tạo với thuộc tính này.
- Một vấn đề là thuộc tính Thuộc tính không thể là tham chiếu phương thức, do đó hàm tạo sẽ vẫn hiển thị là có 0 tham chiếu.
- Các đồng nghiệp không quen thuộc với thuộc tính tùy chỉnh có thể sẽ bỏ qua nó.
- Một lợi thế của cách tiếp cận hiện tại của tôi là phần phản chiếu có thể sử dụng thuộc tính để tìm hàm tạo mà nó sẽ gọi.
- Sử dụng các ý kiến để ghi lại rằng một phương thức / hàm tạo được dự định được gọi thông qua sự phản chiếu.
- Các công cụ tự động bỏ qua các bình luận (và các đồng nghiệp cũng có thể làm như vậy).
- Nhận xét Tài liệu Xml có thể được sử dụng để Visual Studio đếm một tham chiếu bổ sung cho phương thức / hàm tạo:
HãyMyPlugin
là lớp có hàm tạo để gọi thông qua sự phản chiếu. Giả sử tìm kiếm mã phản chiếu tìm kiếm các hàm tạo cóint
tham số. Tài liệu sau đây làm cho ống kính mã đó hiển thị hàm tạo có 1 tham chiếu:
/// <see cref="MyPlugin.MyPlugin(int)"/> is invoked via reflection
Những lựa chọn tốt hơn tồn tại?
Cách thực hành tốt nhất để đánh dấu một phương thức / hàm tạo được dự định gọi qua phản xạ là gì?