Χρήση. .NET για να λάβετε τη φορτωμένη συγκρότηση είναι ελλιπής, αν και αναφερόμαστε σε άλλες βιβλιοθήκες, αλλά χωρίς κλήση, δεν μπορεί να ληφθεί στη φορτωμένη διάταξη, αυτό το άρθρο μοιράζεται για να λάβετε την πλήρη συγκρότηση συναρμολόγησης σε WinForm και ASP.NET.
Εισαγωγή
Χρήση. .NET για να λάβετε τη φορτωμένη συγκρότηση είναι ελλιπής, αν και αναφερόμαστε σε άλλες βιβλιοθήκες, αλλά χωρίς κλήση, δεν μπορεί να ληφθεί στη φορτωμένη διάταξη, αυτό το άρθρο μοιράζεται για να λάβετε την πλήρη συγκρότηση συναρμολόγησης σε WinForm και ASP.NET.
ASP.NET (χωρίς μέτρηση)
Το .NET Framework αναβάλλει τη φόρτωση συγκροτήσεων στο τρέχον AppDomain μέχρι να χρειαστούν. Για παράδειγμα, εάν καλέσετε μόνο μια βιβλιοθήκη άλλου κατασκευαστή από το SomeMethod(), το DLL άλλου κατασκευαστή συνήθως δεν θα φορτωθεί μέχρι την πρώτη εκτέλεση του SomeMethod().
Το AppDomain.GetAssemblies() σάς παρέχει όλες τις συγκροτήσεις που έχουν φορτωθεί στο τρέχον AppDomain. BuildManager.GetReferencedAssemblies() επιστρέφει μια λίστα με όλες τις συγκροτήσεις που αναφέρονται από το Web.config και άλλες θέσεις και φορτώνει αυτές τις συγκροτήσεις στον τρέχοντα AppDomain.
Κώδικας:
WinForm
Ξεκινήστε χρησιμοποιώντας τον παρακάτω κώδικα για να λάβετε το φορτωμένο συγκρότημα.
Ο αριθμός των συγκροτημάτων συναρμολόγησης που λαμβάνονται είναι 12, όπως φαίνεται στο παρακάτω σχήμα:
Όταν δεν καλούμε τις μεθόδους άλλων βιβλιοθηκών, η κύρια εφαρμογή δεν φορτώνει τα dll της, πιθανώς για να εξοικονομήσει επιβάρυνση απόδοσης, επομένως την πρώτη φορά που καλούμε τις μεθόδους άλλων βιβλιοθηκών, μπορεί να είναι λίγο πιο αργή.
Χρησιμοποιήστε τον τροποποιημένο κώδικα, ως εξής:
Ο αριθμός των συγκροτημάτων συναρμολόγησης που λαμβάνονται είναι 117 και η αρχή είναι να λάβετε το dll στον κατάλογο εφαρμογών και να το φορτώσετε.
Σε αυτήν την περίπτωση, όταν καλείτε το AppDomain.CurrentDomain.GetAssemblies(). ToList(), μπορείτε να λάβετε την πλήρη συναρμολόγηση, η οποία μπορεί να είναι μεγαλύτερη από 117.
Αποκτήστε την τρέχουσα συναρμολόγηση
|