Εισαγωγή στη Συνέλευση Youyuan Γνωρίζουμε ότι τα μέλη μιας κλάσης που ορίζονται ως εσωτερικά (συμπεριλαμβανομένων τύπων, μεθόδων, ιδιοτήτων, μεταβλητών, συμβάντων) μπορούν να προσπελαστούν μόνο στην ίδια συναρμολόγηση (φυσικά, μιλάω για τον κανονικό τρόπο εδώ, χωρίς να συμπεριλαμβάνω την πρόσβαση μέσω ανάκλασης). Αυτός ο κανόνας είναι στο . Το .NET 2.0 είναι ελαφρώς σπασμένο, επιτρέποντάς μας να ορίσουμε τα εσωτερικά μέλη μιας συνέλευσης ώστε να είναι προσβάσιμα από συγκεκριμένα μέλη. Ονομάζουμε τη συνέλευση που περιέχει αυτά τα εσωτερικά μέλη συνέλευση πηγής και το σύνολο συναρμολόγησης ονομάζεται συνέλευση φίλων.
Χρήση συναρμολόγησης φίλου Αυτό το χαρακτηριστικό χρησιμοποιείται σε επίπεδο συναρμολόγησης.
Με αυτόν τον τρόπο, αφού το πρόγραμμα FriendAssembly αναφέρει τη συγκρότηση, μπορεί να έχει πρόσβαση στην εσωτερική ιδιότητα Όνομα. Σε γενικές γραμμές, αυτό το συγκρότημα:InternalsVisibleTo("FriendAssembly") τοποθετείται καλύτερα στο AssemblyInfo.cs, άλλωστε είναι στο επίπεδο συναρμολόγησης.
Πότε να χρησιμοποιήσετε το InternalsToVisibleTo Στην πραγματικότητα, αυτό το χαρακτηριστικό δεν χρησιμοποιείται σε γενικές εφαρμογές και δεν πρέπει να κάνουμε κατάχρηση αυτού του χαρακτηριστικού. Γιατί γενικά, ένα καλά σχεδιασμένο συγκρότημα δεν χρειάζεται να είναι ανοιχτό στον έξω κόσμο. Αλλά τα σενάρια δοκιμών μονάδων μπορούν να επωφεληθούν από αυτήν τη δυνατότητα. Με αυτήν τη δυνατότητα, μπορούμε να καθορίσουμε ότι ο κώδικας για τις δοκιμές μονάδας έχει πρόσβαση σε αυτά τα εσωτερικά μέλη, ώστε να μπορούμε να δοκιμάσουμε αυτά τα μέλη. Ωστόσο, αυτό απαιτεί να γράψετε το όνομα της συνέλευσης φίλων νεκρό στη συναρμολόγηση προέλευσης, γεγονός που προκαλεί ορισμένα ζητήματα ασφαλείας. Η ασφάλεια μπορεί να διασφαλιστεί με την εισαγωγή συγκροτημάτων υπογραφής.
InternalsToVisibleTo και το συγκρότημα υπογραφής Μπορείτε να καθορίσετε απευθείας το όνομα και το δημόσιο κλειδί της μετα-συναρμολόγησης φίλου σε InternalsVisibleTo. Χρησιμοποιήστε τη γραμμή εντολών προγραμματιστή VS για να δημιουργήσετε το δημόσιο κλειδί για το FriendAssembly:
Καθορίστε το όνομα της συνέλευσης φίλων και το δημόσιο κλειδί για τη συγκρότηση προέλευσης:
Στην πραγματικότητα, δεδομένου ότι η συνέλευση φίλων αναφέρεται στη συνέλευση πηγής και η υπογεγραμμένη συνέλευση αναφέρεται σε μια ανυπόγραφη συνέλευση και η υπογεγραμμένη συνέλευση δεν μπορεί να καθορίσει μια ανυπόγραφη συνέλευση φίλων, οποιαδήποτε από αυτές είναι υπογεγραμμένη, τότε πρέπει να υπογραφεί.
|