Utilizzo di valori specifici del progetto con enum definito nella libreria di classi

2

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é?

    
posta Zev Spitz 12.11.2015 - 13:23
fonte

1 risposta

3

Potresti usare il pattern "Smart Enum". È inteso per essere esteso e typesafe. Anche se ho post su C #, ma penso che sarebbe comunque utile. Vedi:

risposta data 20.11.2015 - 07:10
fonte

Leggi altre domande sui tag