Recentemente mi è stato detto che usando Enum
:
public enum TaskEndState { Error, Completed, Running }
potrebbe avere problemi di compatibilità / serializzazione, e quindi a volte è meglio usare const string:
public const string TASK_END_STATE = "END_STATE";
public const string TASK_END_STATE_ERROR = "TASK_END_STATE_ERROR";
public const string TASK_END_STATE_COMPLETE = "TASK_END_STATE_COMPLETE";
public const string TASK_END_STATE_RUNNING = "TASK_END_STATE_RUNNING";
Riesci a trovare un caso pratico in cui può accadere, ci sono delle linee guida in cui Enum
deve essere evitato?
Modifica
Il mio ambiente di produzione ha più servizi WFC (diverse versioni dello stesso prodotto). Una versione successiva può / o non può includere alcune nuove proprietà come Stato fine attività (questo è solo un esempio). Se proviamo a deserializzare un nuovo valore Enum
in una versione precedente di un servizio specifico, potrebbe non funzionare.