Я соглашаюсь с Krzysztof, что это обычно - не хорошая идея... Однако насколько я могу сказать, что OverWrite () не перезаписывает компонент по умолчанию, он просто перезаписывает образ жизни, определенный атрибутом (т.е. [Singleton]).
, Если Вы хотите заменить компонент, можно использовать container.Kernel.RemoveComponent(string key)
сопровождаемый регистрацией нового компонента.
Вот пример , где это делает , имеют смысл.
Во-первых, изучите это программное задание . Поверьте, это не так уж и сложно, если потратить на это немного времени. Идея состоит в том, что вы можете написать программу, которая может принимать другую программу в качестве входных и выдавать третью программу в качестве выходных данных, которая объединяет две программы и также понимает свой собственный текст. Это что-то вроде quine высшего порядка. Если вы понимаете структуру всех трех языков программирования, вы можете взять идеи из этого задания и расширить их.
Теорема Клини о рекурсии теоретически позволяет построить куайн почти на любом языке. ( Дополнительная информация здесь. ) Хотя мне самому пока не удалось заставить его работать.
Для quine более высокого порядка функция, которую следует учитывать, - это композиция механизмов оценки языков. Если вы можете получить простой чай из KRT, возможно, вы могли бы попробовать получить из него чай более высокого порядка.