Próbuję rejestrować informacje o stanie niektórych obiektów i klas w moim kodzie. Nie wszystkie klasy lub biblioteki zostały wdrożone z serializacją. Używam Reflection on the Properties, aby napisać dokument XML stanu. Mam jednak wyzwanie polegające na tym, że niektóre obiekty, takie jak wbudowane klasy (tj. Łańcuchy znaków, data, czas itp.), Mają funkcję ToString, która w znaczący sposób drukuje wartość klasy. Ale dla innych klas wywołanie ToString używa odziedziczonej bazy ToString do wypluwania nazwy typu obiektu (na przykład słownik). W tym przypadku chcę rekurencyjnie zbadać właściwości wewnątrz tej klasy.Czy istnieje sposób stwierdzić, czy obiekt zaimplementował ToString jawnie w C#
Więc jeśli ktoś może mi pomóc z refleksją, aby dowiedzieć się, czy w obiekcie istnieje narzędzie ToString, na które patrzę, to nie jest metoda bazowa LUB wskazanie właściwego sposobu użycia GetValue do pobrania kolekcji właściwości, byłbym wdzięczny za to.
J
Korzystanie BindingFlags.DeclaredOnly umożliwia testowanie go bezpośrednio. –
Ale może istnieć nadpisanie odziedziczone po klasie bazowej innej niż obiekt. – phoog
Dobrze. Sugestia Hansa Passanta, by szukać jedynie przesłonięć zadeklarowanych przez typ biegu obiektu, jest zatem niewystarczająca. – phoog