Я не совсем уверен, какие теги должны быть в этом вопросе, поэтому не стесняйтесь давать мне некоторые советы, если вы считаете, что некоторые другие больше подходят.
У меня есть динамический объект с неизвестным номеромили свойства на нем, это от некой динамической модели данных с самоописанием, которая позволяет пользователю строить модель данных во время выполнения.Однако, поскольку все поля, содержащие релевантную информацию для пользователя, находятся в динамических свойствах, трудно определить, какой должен быть читаемый человеком идентификатор, поэтому он остается на усмотрение администратора.(Не думаю, что это имеет значение, но это приложение ASP.NET MVC3).Чтобы помочь во время отладки, я начал украшать некоторые классы с помощью DebuggerDisplayAttribute
, чтобы облегчить отладку.Это позволяет мне делать такие вещи, как
[DebuggerDisplay(@"\{Description = {Description}}")]
public class Group
, чтобы лучше понять, что представляет собой конкретный экземпляр объекта.И такая установка была бы идеальной, но я не могу найти реализацию этой гибкости.Это особенно полезно для моих динамических объектов, потому что строковое значение DebuggerDisplayAttribute
разрешается платформой .NET, и у меня есть реализации TryGetMember
в моем базовом объектном классе для обработки динамического аспекта.Но это только облегчает развитие.Поэтому я добавил поле для того, какая часть моего объекта по-прежнему строго типизирована, и назвал его «Заголовок», и я хотел бы позволить администратору задавать реализацию, используя, так сказать, собственный формат.Так, например, они могли бы создать очень упрощенную систему отслеживания арендной платы, чтобы показать арендную плату, и они могли бы указать строку формата вдоль строк
"{MovieTitle} (Due: {DueDate})"
. Я хотел бы, чтобы, когда они сохраняют запись, чтобы добавить некоторую логику всначала обновите свойство Title, разрешив строку формата для замены каждого заполнителя значением соответствующего свойства на динамическом объекте.Таким образом, это может привести к заголовку «Начало» (срок исполнения 21 мая 2011 г.) или к более реалистичному сценарию строки формата
"{LastName}, {FirstName}"
Я не хочу, чтобы пользователю приходилось обновлятьназвание записи, когда они изменяют поле имени или фамилию.Я полностью понимаю, что это, вероятно, будет использовать рефлексию, но я надеюсь, что кто-нибудь из них может дать мне несколько указателей или даже рабочий пример для обработки строк сложного формата, которые могут быть смешаны, если литеральный текст и заполнители.
IВам не повезло в поисках реализации в сети, которая будет делать то, что я хочу, так как я не совсем уверен, какие ключевые слова дадут мне наиболее релевантные результаты поиска?