Добавление и удаление атрибутов аннотации данных динамически - PullRequest
2 голосов
/ 10 октября 2011

У меня есть немного кривой мяч для вас. Может быть, просто проблема дизайна ... может быть, даже такая простая, как я, не понимая поставщиков аннотаций данных.

В любом случае, мы идем: У меня есть класс, который представляет некоторые данные модели. Допустим, он представляет собой упаковку / коробку / коробку.

Это фактически представляет все эти вещи, поэтому я использую класс в нескольких различных представлениях. Иногда я хочу, чтобы атрибут поля Package_Description был Таким образом, он отображается как номер ящика: поле ввода здесь .

Теперь, если я хочу, чтобы оно отображалось как «Название коробки», мой единственный вариант - ввести его. Или используйте отдельный класс, чтобы иметь аннотации для этого класса. Моя проблема в том, что некоторые имена полей настраиваются пользователем, и поэтому у меня не может быть статического определения!

(Кстати, я использую сторонние библиотеки [Telerik MVC Grid] действительно отображает эти имена полей, поэтому я не могу изменить тот факт, что он смотрит на аннотацию данных)

Так что мне просто нужно знать, есть ли способ динамического добавления атрибутов? Создать анонимный тип на лету, подкласса оригинал, а затем добавить атрибуты, используя отражение? Или какие другие варианты открыты для меня, мне нужно как-то реализовать другого поставщика аннотаций?

1 Ответ

1 голос
/ 10 октября 2011

Атрибуты являются частью определения типа.Из-за этого вы не можете изменять атрибуты существующих классов во время выполнения.

Вы можете создать новый тип во время выполнения (не анонимный тип), но я думаю, что это не такотличная идея.Я уверен, что какой бы компонент вы ни использовали, он позволяет вам явно указывать внешний вид.

...