Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Spring.NET NHibernate AOP

Îåêßíçóå áðü ôï ìÝëïò nullvoid. Τελευταία δημοσίευση από το μέλος nullvoid στις 01-06-2007, 21:22. Υπάρχουν 2 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  01-06-2007, 17:54 32457

    Spring.NET NHibernate AOP

    Πώς γίνεται τα αντικείμενα που μου φέρνει το hibernate να είναι 'advised' ;

    π.χ.

    public class StudentDao : HibernateDaoSupport, IStudentDao
    {


    public IList<Student> FindAll()
    {
    return HibernateTemplate.LoadAll<Student>();
    }
    }

    τα αντικείμενα να μην είναι Student αλλά τα proxy αντικείμενα του Spring.NET που θέλω να είναι και advised.


  •  01-06-2007, 18:49 32463 σε απάντηση της 32457

    Απ: Spring.NET NHibernate AOP

    Ρίξε μια ματιά στους Interceptors. To IInterceptor είναι ένα Interface το οποίο σου επιτρέπει να επέμβεις στο OnLoad, OnDelete, OnSave κλπ. Μπορείς να το ορίσεις σε επίπεδο Session:

    ISession session = sf.OpenSession( new SpringInterceptor() );

    ή global

    new Configuration().SetInterceptor( new SpringInterceptor() );

    Η OnLoad μέθοδος σου περνάει το νέο αντικείμενο ως object, οπότε υποθέτω ότι θα μπορείς να το χρησιμοποιήσεις για να εφαρμόσεις advice με το ProxyFactory. Δεν το έχω κάνει όμως, οπότε δεν μπορώ να ορκιστώ τίποτε. Μπορεί μάλιστα να υπάρχει και άλλος ευκολότερος τρόπος. Ίσως στο NHibernate forum να έχουν ήδη κάνει την ερώτηση.

    Αναρωτιέμαι αν μπορείς να κάνεις το ίδιο και με το Policy Injection Block του Enterprise Library? Και αυτό επιτρέπει να κάνεις Wrap ένα ήδη υπάρχον αντικείμενο και να του προσθέσεις policies ... Χμμμμ

     


    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  01-06-2007, 21:22 32470 σε απάντηση της 32463

    Απ: Spring.NET NHibernate AOP

    έχεις δίκιο, με Interceptor πρέπει να γίνεται. Το interface Interceptor έχει μέθοδο instantiate που εκεί μέσα μπορείς εσύ να δημιουργήσεις το κατάλληλο object (δηλαδή να πεις στο Spring να σου φτιάξει το κατάλληλο proxy) αντί να φτιάξει το hibernate το δικό του object.

    Θα το δοκιμάσω από Δευτέρα
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems