Có một số thuộc tính lớp ẩn sẽ cho phép biết điều này không?Làm cách nào để theo dõi người đăng ký một sự kiện trong C#?
Trả lời
Nếu bạn có quyền truy cập vào các đại biểu thực tế (nếu bạn đang sử dụng cú pháp tốc ký event
, thì đây là chỉ trong lớp học tuyên bố thực tế, như các đại biểu là private
), sau đó bạn có thể gọi GetInvocationList()
.
Ví dụ:
public event EventHandler MyEvent;
Để có được danh sách các thuê bao, bạn có thể gọi:
Delegate[] subscribers = MyEvent.GetInvocationList();
Sau đó, bạn có thể kiểm tra việc Method
và Target
thuộc tính của mỗi phần tử của mảng subscribers
, nếu cần thiết.
Lý do làm việc này là vì tuyên bố sự kiện này như chúng ta đã làm ở trên thực làm điều gì đó tương tự như thế này:
private EventHandler myEventDelegate;
public event EventHandler MyEvent
{
add { myEventDelegate += value; }
remove { myEventDelegate -= value; }
}
Đây là lý do tại sao sự kiện này trông khác nhau khi nhìn từ bên trong lớp tuyên bố so với bất cứ nơi nào khác (bao gồm cả các lớp kế thừa từ nó). Giao diện công khai duy nhất là chức năng add
và remove
; đại biểu thực tế, là những gì chứa đăng ký, là private
.
- 1. Người theo dõi đăng ký C#
- 2. Sự kiện .NET - chặn người đăng ký đăng ký một sự kiện
- 3. Cách tạo trình theo dõi sổ đăng ký?
- 4. C# Đăng ký sự kiện động
- 5. Làm cách nào để có được người đăng ký sự kiện?
- 6. Cách tiêu chuẩn và đáng tin cậy để theo dõi người đăng ký RSS?
- 7. Theo dõi người dùng đã đăng nhập
- 8. Đăng ký sự kiện khi tạo đối tượng trong C#
- 9. Làm cách nào để kiểm tra xem một sự kiện đã được đăng ký, trong .NET?
- 10. khi một sự kiện có nhiều người đăng ký, làm cách nào để tôi nhận được giá trị trả lại cho từng người đăng ký?
- 11. Sự kiện đăng ký trong VB.NET
- 12. Cách theo dõi sự kiện tùy chỉnh trong paper_trail?
- 13. Cách theo dõi đăng ký người dùng Devise dưới dạng chuyển đổi trong Google Analytics
- 14. Lift theo dõi một người dùng đăng nhập
- 15. Làm cách nào để theo dõi sự kiện tùy chỉnh trong hoa nhài?
- 16. Tránh đăng ký sự kiện trùng lặp trong C#
- 17. Làm cách nào để đăng ký một sự kiện trên AppDomains (object.Event + = handler;)
- 18. Chạy sự kiện người đăng ký Plone không đồng bộ
- 19. Có thể đăng ký các đăng ký sự kiện trong C# không?
- 20. Theo dõi sự kiện AdMob trong Google Analytics
- 21. Làm cách nào để theo dõi sự kiện mở và đóng của NSWindow?
- 22. Tôi làm cách nào để theo dõi sự kiện bằng Firebug?
- 23. Theo dõi video bằng cách sử dụng Theo dõi sự kiện GA
- 24. Làm cách nào để đăng ký sự kiện PropertyChanged trong ViewModel của tôi?
- 25. Cách đăng ký sự kiện ngủ trong Android?
- 26. Theo dõi đăng ký, bao gồm truy cập đăng ký chế độ lõi?
- 27. Làm cách nào để tránh các phương thức ẩn danh trong đăng ký sự kiện "động"?
- 28. Làm thế nào để theo dõi nhiều sự kiện cảm ứng trong Libgdx?
- 29. Đăng ký sự kiện bên trong một hàm tạo?
- 30. Nơi hủy đăng ký sự kiện trong một UserFind WinForms
Cảm ơn lời giải thích rất rõ ràng này. – user310291