Сегодня я немного удивился, когда изменил значение публично видимой константы в статическом классе, а затем заменил старую копию сборки на недавно скомпилированную версию. Удивительно, что существующая программа, которая ссылалась на сборку, не получила нового значения константы. То есть я не перекомпилировал исполняемый файл, а просто заменил эту сборку.
Полное описание моего эксперимента находится в Как константа является константой?
Я признаю, что очень удивлен этим поведением. Я понимаю, что происходит, но я не понимаю, почему. Есть ли особая техническая причина, почему константы не могут быть собраны во время JIT, а не время компиляции? Существуют ли случаи, когда это может нарушить работу?