В документации указано, что значения перечисления являются постоянными.Альтернативный подход заключается в объявлении класса с static readonly
членами.
Если вам все еще нужна безопасность типов, обеспечиваемая перечислением, вы можете использовать слегка сложный подход:
public class ServiceCodes {
public static readonly ServiceCodes Transfer = new ServiceCodes(Convert.ToInt32(ConfigurationManager.AppSettings["servTransfer"]));
public static readonly ServiceCodes ChangePlate = new ServiceCodes(Convert.ToInt32(ConfigurationManager.AppSettings["servChangePlate"]));
internal int Code {get; private set;}
private ServiceCodes(int code) {
Code = code;
}
}
Тогдатакой метод, как:
public void SomeAction(ServiceCodes serviceCode) {
//....
}
можно было бы назвать так:
SomeAction(ServiceCodes.Transfer);
Но, учитывая сложность (по сравнению с усилением), я бы пошел с первым подходом.