Нет строкового представления по умолчанию «базовых данных» в объекте. Все зависит от того, что вы хотите увидеть. Например, у вас есть класс Person, и у него есть свойства FirstName и LastName. У вас есть экземпляр, где FirstName = "John" и LastName = "Smith". Каково будет представление по умолчанию базовых данных? "Джон Смит"? "Смит, Джон"? Что-то еще?
Вот (я предполагаю), почему .NET возвращает имя типа в методе ToString, если вы не переопределили этот метод для отображения чего-то более полезного. Фреймворк не может знать, что было бы полезным для представления базовых данных любого данного класса.
Так что я не думаю, что вы можете заставить свой метод работать для произвольных классов. Если у вас есть определенный небольшой набор классов, для которых вы хотите, чтобы это работало, вы можете переопределить ToString, поскольку Пол Сасик предлагает предоставить для них полезное строковое представление. Или, если у вас нет доступа к коду для этих классов, вы можете добавить метод расширения для всех них, GetUnderlyingData или что-то в этом роде, и вызвать этот метод расширения вместо ToString.