In realtà stai creando quello che viene chiamato un tipo anonimo qui, non dinamico.
Purtroppo non c'è modo di ottenere ciò che si sta tentando di fare. I tipi anonimi sono pensati per essere un tipo immutabile molto semplice costituito da coppie nome/valore.
La versione C# di tipo anonimo consente solo di personalizzare l'insieme di coppie nome/valore sul tipo sottostante. Nient'altro. VB.Net consente un po 'più di personalizzazione in quanto le coppie possono essere mutevoli o immutabili. Tuttavia non ti permettono di aumentare il tipo con gli attributi.
Se si desidera aggiungere attributi, è necessario creare un tipo completo.
EDIT OP ha chiesto se è possibile aggiungere gli attributi tramite riflessione.
No, non è possibile. La riflessione è un modo di ispezionare i metadati senza mutarli. Quindi non può essere utilizzato per aggiungere attributi.
Inoltre, digitare le definizioni in un assieme e, in generale, non sono modificabili e non possono essere mutate in fase di runtime [1]. Ciò include l'aggiunta di attributi a un metodo. Anche qui non è possibile utilizzare altre tecnologie simili a riflessioni.
[1] L'unica eccezione a questa è operazione ENC
Hai ragione, intendevo il tipo Anon, grazie per il chiarimento. – will