Często muszę serializować obiekt, zarówno do logowania lub debugowania. To jest serializacja w jedną stronę - nie muszę jej później odzyskiwać, wystarczy, że zmienię obiekt w ciąg znaków, aby go gdzieś napisać.W języku C#, w jaki sposób można w jedną stronę szeregować nieprzykrywalne?
Tak, tak - dlatego zawsze należy przesłonić metodę ToString
. Wiem to. Ale często zajmuję się przedmiotami, których nie napisałem i nie mogę się zmienić. Ponadto nie chcę pisać i aktualizować metody ToString dla każdej klasy, którą piszę.
Serigrafia XML oferuje pozornie idealne rozwiązanie - wystarczy spłaszczyć obiekt do XML. Ale jest tak wiele ograniczeń, szczególnie że nie możesz serializować IDictionary i musisz mieć konstruktora bez parametrów. Mogę omijać je na moich zajęciach, ale - znowu - często pracuję z zajęciami innych ludzi.
Co to jest rozwiązanie, aby uzyskać kompleksową reprezentację ciągów obiektów? Czy jest coś prostego, czego mi brakuje?
Może trochę refleksji do iteracji i renderowania członków na sznurku? Jest to jednak powolne i dlatego jest sensowne tylko w przypadku scenariuszy błędów, w których wydajność nie ma już znaczenia (więcej) ... –