Abbiamo un enum in una libreria di classi:
Public Enum FieldType
Phone
Span
Gender
DrawPath
....
End Enum
che utilizziamo con un attributo applicato alle proprietà, per più scenari: rendering HTML / CSV, visualizzazione su schermo della formattazione tra di essi.
Più progetti usano questa libreria di classi e vogliamo usare valori specifici del progetto con questo enum. La libreria di classi potrebbe avere punti di estensione (ad esempio Public Shared FieldTypeAsHtml As Func(Of FieldType,String)
) che progetti specifici potrebbero ignorare.
Ogni progetto potrebbe avere le proprie enumerazioni o costanti aggiuntive e le conversioni sarebbero automatiche (almeno in VB.NET, che è quello che stiamo usando; C # richiederebbe conversioni esplicite).
A parte l'ovvio - l'intenzione di questo enum è di essere "aperta" e non limitata a un determinato insieme di valori, quindi nessuna sicurezza in fase di compilazione su un dato valore - è un progetto valido? Ci sono degli aspetti negativi? Poiché non ci sono enumerazioni parziali in .NET, quali altre alternative potrebbero essere migliori e perché?