LINQ to Reflection
LINQ to Reflection è una libreria completa di codice sorgente e liberamente scaricabile, che permette di effettuare operazioni di reflection quali creazione di un'istanza, lettura e scrittura di una proprietà, copia di una serie di proprietà, in una modalità molto più veloce rispetto alla reflection classica. Il sistema si basa sul Lightweight Code Generation che in pratica genera a runtime le istruzioni IL per eseguire le operazioni e mantiene un delegate alla funzione stessa. L'uso è piuttosto semplice:
static void Main(string[] args) { // Creazione veloce di un'istanza di un tipo Product p4 = (Product)typeof(Product).FastCreateInstance(); // Ottiene una proprietà PropertyInfo descriptionProperty = typeof(Product).GetProperty("Description", BindingFlags.Public | BindingFlags.Instance); Product p5 = new Product() { Description = "pippo" }; string description = (string)descriptionProperty.FastGetValue(p5); // Imposta una proprietà Product p6 = new Product(); descriptionProperty.FastSetValue(p6, "pluto"); }
E' contenuta inoltre un extension method CopyTo che permette di fare copie rapide delle classi, utile per i DTO:
public class ProductDTO { public ProductDTO() { } public ProductDTO(Product source) { // Copia solo le proprietà che hanno in comune source.CopyTo(this); } public string Description { get; set; } }
La libreria è disponibile da questo indirizzo.
Commenti
LINQ to Reflection 1
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Collegamenti sponsorizzati
Approfondimenti
Impostare l'obbligatorietà di una proprietà utilizzando il codice con Entity Framework Code First
Prima CTP per Microsoft Roslyn
Protobuf: un serializzatore alternativo per WCF
Scoprire le limitazioni di Entity Framework con SQL Server Compact 4
Utilizzare le table Windows Azure come membership provider di ASP.NET
Proprietà di tipo String a lunghezza fissa utilizzando il codice con Entity Framework Code First
Eseguire attività di manutenzione su un database SQL Server Compact 4
Realizzare branch e cicli con ASP.NET Razor
WPC 2011: Cosa mi/ci/vi aspetta!
Speciale Razor: il nuovo view engine di WebMatrix e ASP.NET MVC
Utilizzare i cursori per leggere e scrivere su un database SQL Server Compact 4
Gestire l'edit di collection di dati in ASP.NET MVC











