Tôi có lớp B và lớp cha mẹ A, cả hai đều trong Miền không gian tên.Làm thế nào để có được các trường riêng của lớp và lớp cha mẹ của nó bằng cách phản ánh?
- Loại A, có trường riêng a;
- Lớp B, có trường riêng b;
Sau đó, tôi có Reflection Util trong không gian tên Reflect. Nếu tôi sử dụng dòng này
instanceOfB.GetType().GetFields(BindingFlags.NonPublic
| BindingFlags.Public | BindingFlags.Instance);
để tìm tất cả các lĩnh vực (một & b), tôi nhận được chỉ b. Nhưng khi tôi thực hiện a
được bảo vệ hoặc công khai, tôi cũng tìm thấy chúng.
Tôi cần phải làm gì để tìm các trường riêng tư của lớp cơ sở?
Hãy cho phép tôi để hỏi thêm một chút: Khi tôi đi đệ quy throug hệ thống phân cấp lớp, làm thế nào để đảm bảo rằng Tôi có được mọi lĩnh vực (ngay cả các lĩnh vực công cộng của phụ huynh) chỉ một lần? – Ralph
@Ralph: Bạn có thể sử dụng 'BindingFlags.DeclaredOnly' để * tránh * nhận các trường được kế thừa từ các lớp cơ sở. –
Jon Skeet: Cảm ơn rất nhiều – Ralph