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

 

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

Αναζήτηση static μεθόδου με Reflection

Îåêßíçóå áðü ôï ìÝëïò alfoks. Τελευταία δημοσίευση από το μέλος alfoks στις 14-05-2008, 13:36. Υπάρχουν 2 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  14-05-2008, 12:15 41980

    Αναζήτηση static μεθόδου με Reflection

    Hello!
    Έχω κι εγώ μια ερώτηση για το Reflection.

    Έχω μια κλάση όχι static, αλλά με static μεθόδους.
    Στις μη static μεθόδους μπορώ να κάνω το εξής: FieldInfo oFields = this.GetType().GetFields(BindingFlags.Public) και να πάρω τα πεδία της κλάσης.
    Στις static μεθόδους αυτό δεν γίνεται γιατί δεν υπάρχει Instance της κλάσης.
    Μπορώ να κάνω: FieldInfo oFields = typeof(ClassName).GetFields(BindingFlags.Public), αλλά επειδή έχω άλλες κλάσεις που κάνουν inherit από αυτήν,
    θελω σε αυτό το σημείο να βρεί μόνη της η μέθοδος για ποιον τύπο πρόκειται και όχι να της τον δώσω εγώ. Γίνεται;

  •  14-05-2008, 12:38 41981 σε απάντηση της 41980

    Απ: Αναζήτηση static μεθόδου με Reflection

    Καλό είναι όταν έχουμε μία καινούρια ερώτηση να ξεκινάμε νέο thread αντί να την προσθέτουμε στο τέλος ενός άλλου thread. Διαφορετικά μόνο όσοι ήδη ασχολούνται με το παλιό thread θα δουν την ερώτηση. Αντίθετα, ένα νέο thread θα το προσέξουν όλοι.

    Όσον αφορά την ερώτηση, αν κατάλαβα καλά θέλεις να βρεις τις στατικές μεθόδους ενός τύπου? Μπορείς να χρησιμοποιήσεις την BindingFlags.Static, π.χ. FieldInfo oFields = this.GetType().GetFields(BindingFlags.Static | BindingFlags.Public). Αν θέλεις να δεις και τις μεθόδους των base τύπων μπορείς να χρησιμοποιήσεις επιπλέον την BindingFlags.FlattenHierarchy. Ρίξε μία ματιά στο documentation της BindingFlags και θα βρεις και άλλα flags που μπορεί να σε βοηθήσουν


    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  14-05-2008, 13:36 41983 σε απάντηση της 41981

    Απ: Αναζήτηση static μεθόδου με Reflection

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