Прежде чем вернуться к делу, я решил взять несколько выходных для развлекательного кодирования. Несколько 30-часовых дней без свежего воздуха? Звучит фантастически, для разнообразия.
Я боролся с генерацией управляемого кода с течением времени и всегда задавался вопросом, существует ли круговая связь между кодом на C #, отражением и кодированием. Никогда не удосужился исследовать это, к сожалению. Таким образом, цель состоит в том, чтобы создать бесполезные и раздражающие сложные классы с вложенными обобщениями, ограничениями, анонимными методами, делегатами, вложенными сложными ссылочными типами и т. Д. И использовать отражение + кодирование для регенерации их исходного кода из класса CodeGenerator<T>
, где T бесполезные занятия.
Вдохновение пришло от откровенной мести. Наличие управляющей компании отвлекает вас от программирования, а выполнение увлекательных проектов в ваше несуществующее свободное время становится неприятным из-за отсутствия практики и отсутствия связи. Я чувствую себя идиотом сейчас, но я покажу вам! Глупый CLR! Тем не менее, пожалуйста, не принимайте это за шутку. Я очень серьезно отношусь к этим маленьким каникулам.
Это произошло совсем недавно при попытке достичь этого . Я хотел сгенерировать код без использования строковых манипуляций и был озадачен тем, как создать вызов конструктора new XyzObject()
во время выполнения. Я НЕ хочу использовать default (T), потому что он устанавливает ссылочные типы в null. ИМЕЕТ путь. Глупый CLR!
Почему ТАК? Ну, это должно быть веселое обсуждение, чтобы начать с. Здесь можно многому научиться.
Итак, план:
- Создайте несколько бесполезных и раздражающе сложных классов.
- Отвечать на забавные и / или глупые предложения членов SO (надеюсь).
- Попытка обойти бесполезные классовые структуры с помощью отражения.
- Ложись проголосовали за то, что застряли и задали глупые вопросы.
- Успешно пройти бесполезные классовые структуры с помощью отражения.
- Попытка восстановить код для бесполезных классов с использованием кодировки.
- Ложись проголосовали за то, что застряли и задали глупые вопросы.
- Успешно восстановить код для бесполезных классов с использованием кодировки.
- Получайте знания по пути.
- Используйте эти знания о не подозревающих разработчиках дома, чтобы обеспечить соблюдение соглашений посредством генерации кода.