In un C#/applicazione WPF ho aggiunto un attributo TypeConverter ad alcuni dei miei enumerazioni, al fine di visualizzare un testo localizzato invece del testo della enum:Aggiungi attributo TypeConverter al enum in runtime
[TypeConverter(typeof(LocalizedEnumTypeConverter))]
public enum MyEnum
{
EnumVal1 = 0,
EnumVal2 = 1,
EnumVal3 = 2,
}
ho implementato LocalizedEnumTypeConverter per eseguire questa attività.
Il problema si presenta quando provo ad utilizzare lo stesso approccio con un enum definito in un altro assembly, che non ha accesso a LocalizedEnumTypeConverter, ed è condiviso con altre applicazioni (cioè, non posso aggiungere un riferimento al assembly in cui LocalizedEnumTypeConverter è definito).
C'è un modo per aggiungere l'attributo TypeConverter in runtime? In questo modo posso lasciare l'enum nell'altro assembly senza l'attributo TypeConverter e quindi aggiungerlo in runtime nella mia applicazione.
Poiché sono in gruppi diversi e non condividono una base di codice comune, perché non implementare LocalizedEnumTypeConverter anche nell'altro assembly? – CarbineCoder
Il punto è che LocalizedEnumTypeConverter fa parte di un assembly destinato alla localizzazione, che non voglio aggiungere come riferimento agli altri progetti che accedono all'enumerazione, se posso evitarlo. Inoltre, il mio approccio evita di modificare l'enumerazione condivisa, in quanto l'attributo verrà aggiunto solo nel mio programma corrente. – jcibar