У нас есть проект, скомпилированный в DLL, называемый consts.dll, который содержит что-то вроде:
public static class Consts
{
public const string a = "a";
public const string b = "b";
public const string c = "c";
}
У нас есть несколько проектов такого рода, каждый из которых скомпилирован в DLL с таким же именем (consts.dll), и мы заменяем их в соответствии с потребностями. У нас есть еще один класс, который использует эти константы:
public class ConstsUser
{
string f() { return Consts.a; }
}
К сожалению, Consts.a
оптимизирован для "a", поэтому, даже если мы заменим реализацию Consts.dll, мы по-прежнему получаем "a" вместо правильного значения, и нам нужно перекомпилировать ConstsUser
. В любом случае, чтобы оптимизатор не заменил константные переменные своими значениями?