Следующая реализация использует метод расширения на object
, а использование отражений и linq создает строку всех имен и значений свойств. Опять же, коллекции / массивы должны обрабатываться по-разному .
РЕДАКТИРОВАНИЕ КОДА Удаление всего связанного кода и сохранение только необходимого расширения.
public static string ToStringLinq(this object o)
{
return o.GetType().FullName
+ Environment.NewLine
+ string.Join(Environment.NewLine, (from p in o.GetType().GetProperties()
select string.Format("{0}{1}{2}", p.Name, ':', p.GetValue(o, null))));
}
Usage
AnyClass instance = new AnyClass();
string toString = instance.ToStringLinq();