Αυτό το άρθρο είναι ένα άρθρο καθρέφτη της αυτόματης μετάφρασης, κάντε κλικ εδώ για να μεταβείτε στο αρχικό άρθρο.

Άποψη: 19548|Απάντηση: 0

[Πηγή] Χρησιμοποιήστε το InternalsVisibleTo για να προσθέσετε "συναρμολόγηση φίλου" στη συναρμολόγηση

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 6/2/2017 2:28:57 μ.μ. | | |

Η εσωτερική λέξη-κλειδί στη C# μπορεί να κάνει τις επισημασμένες μεθόδους, πεδία ή χαρακτηριστικά διαθέσιμα μόνο εντός της τρέχουσας διάταξης, οπότε τι γίνεται αν άλλα συγκροτήματα χρειαστεί να χρησιμοποιήσουν αυτήν την εσωτερική μέθοδο; Το .NET παρέχει έναν τρόπο για την επίτευξη αυτής της λειτουργίας παρόμοια με την κλάση friend στη C++, η οποία είναι η χρήση του InternalsVisibleTo.

Αυτό είναι σύνηθες όταν κάνετε δοκιμές και απαιτείται ένα άλλο έργο για τη δοκιμή της λειτουργικότητας που επισημαίνεται από την εσωτερική μέθοδο στο έργο, επομένως με το InternalsVisibleTo, δεν χρειάζεται να αλλάξουμε μια μέθοδο που δεν πρέπει να είναι δημόσια σε δημόσια για να κάνουμε δοκιμές μονάδας.

Υπάρχουν ακόμα ορισμένα πράγματα που πρέπει να προσέξετε όταν χρησιμοποιείτε το InternalsVisibleTo, ειδικά το PublicKey δεν είναι εύκολο να κατανοηθεί, ας μιλήσουμε για τον τρόπο χρήσης αυτού του InternalsVisibleTo:

Ας εξηγήσουμε πρώτα την υπόθεση: Το Project1 είναι ένα λειτουργικό έργο και το Project1.Test (όνομα συναρμολόγησης: Project1.Test.dll) είναι ένα δοκιμαστικό έργο για το Project1.

1. Ανοίξτε το αρχείο Assembly.cs του Project1 και προσθέστε αυτήν την πρόταση στο τέλος του αρχείου:


PublicKey=****** θα πρέπει να αντικατασταθεί με το Project1.Test.dll δημόσιο κλειδί, όσο για το πώς να αποκτήσετε το PublicKey, ανατρέξτε στην ενότητα Σημειώσεις στο τέλος του άρθρου.

2. Βεβαιωθείτε ότι ο χώρος ονομάτων: System.Runtime.CompilerServices προστίθεται στην αναφορά χώρου ονομάτων του Assembly.cs, καθώς το InternalsVisibleTo βρίσκεται στον χώρο ονομάτων System.Runtime.CompilerService.

Notes:

1. Πώς μπορώ να αποκτήσω ένα δημόσιο κλειδί;

Α: Κάτω από τη γραμμή εντολών, χρησιμοποιήστε το sn -tp Project1.Test.dll για να δείτε το PublicKey και το PublicKeyToken

2. Εάν το Project1 είναι ένα έργο με ισχυρό όνομα, τότε το InternalsVisibleTo πρέπει να καθορίσει ένα PublicKey, επομένως το Project1.Test πρέπει επίσης να χρησιμοποιήσει μια ισχυρή υπογραφή για να χρησιμοποιήσει σωστά το InternalsVisibleTo, διαφορετικά η μεταγλώττιση θα κάνει σφάλμα, εάν το Project1 δεν χρησιμοποιεί ισχυρή υπογραφή, Στη συνέχεια, το Project1.Test δεν χρειάζεται να χρησιμοποιεί ισχυρές υπογραφές και όταν χρησιμοποιείτε το InternalsVisibleTo, απαιτείται μόνο το όνομα της συγκρότησης και δεν χρειάζεται να ορίσετε το PuklicKey.




Προηγούμενος:InternalsVisibleToAttribute εκθέτει το εσωτερικό μέλος στην καθορισμένη συγκρότηση φίλου
Επόμενος:[Μύθος] Η μέθοδος Init αντικειμένου HttpApplication θα εκτελεστεί μόνο μία φορά;
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com