Reflection o DynamicMethod?
-
03-07-2019 - |
Domanda
Ho usato NHibernbate in pochi progetti e ora ho imparato anche qualche altro ORM. Capisco che NHibernate lega dinamicamente Class a Datalayer durante il runtime utilizzando il file di mapping.
La mia domanda è: come viene eseguita questa associazione tardiva? Voglio dire, quale metodologia viene utilizzata, "Reflection" o "DynamicMethod"?
Nel caso in cui utilizzi Reflection, esiste qualche ORM che utilizza DynamicMethod? e offre prestazioni migliori?
Soluzione
A partire da NHibernate 2.1, proxy factory è collegabile . Ecco alcuni provider di proxy supportati:
- Castle.DynamicProxy
- Linfu
- Spring.NET
Quindi il proxy sarà in realtà fuori dalla responsabilità di NHibernate e la risposta a questa domanda dipende in realtà dalla fabbrica di proxy selezionata.
Altri suggerimenti
NHibernate utilizza Castle.DynamicProxy, che sotto il cofano utilizza DynamicMethods.
L'esatto modo in cui un ORM crea un'istanza delle entità non è un buon modo per valutarne le prestazioni complessive.