В мире Java у нас есть Apache Commons ToStringBuilder, чтобы помочь в создании реализаций toString().
Кто-нибудь знает о достойной бесплатной реализации для С#? Есть ли лучшие альтернативы, о которых я не знаю?
Если никакой свободной реализации не существует, я полагаю, что этот вопрос становится скорее вопросом "Что сделало бы хороший ToStringBuilder в С# 3?"
Сверху моей головы:
-
Он может предлагать как отражение, так и ручное создание строки в ToString.
-
Было бы здорово, если бы он мог использовать деревья выражений.
Что-то вроде этого..
public override string ToString()
{
return new ToStringBuilder<Foo>(this)
.Append(t => t.Id)
.Append(t => t.Name)
.ToString();
}
Что будет возвращено:
"Foo{Id: 1, Name: AName}"
- Он может использовать System.Reflection.Emit для прекомпиляции делегата ToString.
Любые другие идеи?
UPDATE
Просто, чтобы уточнить, ToStringBuilder - это другое существо для StringBuilder. Я ищу что-то похожее на функциональность Apache Common ToStringBuilder, он имеет такие функции, как многострочное форматирование, различные стили и базовое представление ToString. Спасибо.
ОБНОВЛЕНИЕ 2
Я построил свой собственный. См. here.