Возможна ли декомпиляция?Если да, вы можете использовать, например, PostSharp или Mono Cecil , чтобы переписать рассматриваемые классы и добавить туда код, который вы хотите получить.Меня интересует, почему вы не хотите использовать стандартный подход ОО, такой как деривация.Это определенно не взлом.
Самым «чистым» решением ОО является использование агрегации и инкапсуляция классов Entity внутри объектов, где вы можете полностью контролировать, что вы можете делать с данными и как вы хотите манипулировать ими или запрашивать их.Вы достигли «небес», когда вашему классу агрегации больше не нужно раскрывать внутренний класс Entity, потому что ваш класс достаточно мощный, чтобы поддерживать все необходимые операции с правильными абстракциями.
Если классы, которые вы хотите расширить,тогда вам нужно хорошо подумать, почему авторы этих классов не хотели, чтобы вы их расширяли.
У Эрика Липперта есть хорошая запись об использованиизапечатанное ключевое слово.
...
Теперь я признаю, что разработчики - очень практичные люди, которые просто хотят добиться своей цели.Конечно, иметь возможность расширять любой класс удобно.Типичные разработчики говорят «IS-A-SHMIZ-A, я просто хочу шлепнуть Confusticator в класс Froboznicator».Этот разработчик может написать хеш-таблицу, чтобы сопоставить одну с другой, но тогда вам придется задуматься о том, когда удалять элементы, и т. Д., И т. Д. - это не ракетостроение, а работа.
Очевидно, что здесь есть компромисс.Компромисс заключается в том, чтобы позволить разработчикам сэкономить немного времени, позволяя им рассматривать любой старый объект как пакет свойств, с одной стороны, и разработать хорошо спроектированную, OOPtacular, полнофункциональную, надежную, безопасную, предсказуемую, тестируемую среду вразумное количество времени - и я собираюсь сильно наклониться к последнему.Потому что ты знаешь что?Те же разработчики будут горько жаловаться на то, что предоставляемая нами среда замедляет их, потому что она полусырая, ломкая, ненадежная и не полностью протестирована!
...
Ваш, Алоис Краус