У меня есть класс, и я делаю некоторые изящные вещи с отражением.
Теперь мне нужно добавить некоторые метаданные, связанные с конкретным полем, когда я присваиваю значение полю класса с помощью отражения (я не знаю, каким будет класс) .
Я хотел бы сделать это, чтобы клиенты не знали о моей реализации (делать что-то свое).
Наличие обозначенного «мета» поля или объекта в классе будет работать, но не очень элегантно, так как требует, чтобы дочерний класс сделал что-то «совместимое». Я хотел бы динамически присоединить эту метаинформацию к существующему классу, но все же позволить обрабатывать ее как тот же класс, что и остальная часть приложения. Я хотел бы иметь возможность восстановить эту мета-информацию позже.
- Класс передается в
- Значения присваиваются (отображаются) через Reflection с
Мета-информация прилагается
- Класс возвращен
* Этот процесс не должен иметь побочных эффектов в отношении обычных операций и типа объекта класса. Для общего применения класс должен быть одинаковым до и после.
- Приложение «нормально» работает с классом (присваивает значения, получает значения, проверяет информацию и т. Д.)
- Класс возвращается позже
- Используйте значения вместе с метаинформацией, чтобы что-то сделать
Разобравшись с простейшими терминами, я, в основном, ищу способ "дополнить" дополнительную информацию о любом произвольном экземпляре класса без специальной модификации во время компиляции.
Я понимаю, что это странная проблема с некоторыми странными ограничениями, но можно ли это сделать?