In generale, sono piuttosto contrario all'uso di tipi anonimi nel codice del mondo reale (eccetto LINQ e altri scenari specifici), ma sto guardando in questo momento a una situazione in cui ho bisogno di associare un ASP Controllo GridView
con una raccolta di valori di tupla e sembrano piuttosto allettanti.
Fondamentalmente, ho bisogno di mostrare un elenco di account proprietari associati a nomi di computer diversi. Al momento non ho un tipo che contenga queste due proprietà perché non li uso insieme come questo da nessun'altra parte.
Quello che farei normalmente in una situazione come questa è semplicemente creare una nuova classe con le proprietà, impostare ItemType
su GridView
per fare riferimento a quel tipo, quindi creare oggetti di quel tipo nel mio Select
metodo (io uso ObjectDataSource
la maggior parte delle volte). Ma ora sto pensando che non c'è davvero alcun vantaggio nel lanciare quella classe extra, dal momento che non importa cosa si stia vincendo attraverso il riflesso.
C'è qualche ragione per evitare l'uso di tipi anonimi in situazioni di associazione dei dati come questa?
Accetterei qualsiasi cosa: prestazioni, leggibilità, manutenibilità, principio o qualsiasi altra cosa tu possa lanciarmi. Ma l'unico svantaggio che mi viene in mente è se volessi usare la proprietà Item
per usare Intellisense per il mio data-binding, ma in questo caso particolare non ho alcuna utilità per qualcosa di più di BoundField
s. Ovviamente, tutto si basa sul presupposto che funzioni anche, certamente non l'ho ancora provato con i tipi anonimi, quindi potrebbe non essere supportato per un motivo o per l'altro.