Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 19548|Antwort: 0

[Quelle] Verwenden Sie InternalsVisibleTo, um "friend assembly" zur Montage hinzuzufügen

[Link kopieren]
Veröffentlicht am 06.02.2017 14:28:57 | | |

Das interne Schlüsselwort in C# kann die markierten Methoden, Felder oder Attribute nur innerhalb der aktuellen Assembly verfügbar machen, also was, wenn andere Assemblies diese interne Methode verwenden müssen? .NET bietet eine Möglichkeit, diese Funktion ähnlich der Friend-Klasse in C++ zu erfüllen, nämlich InternalsVisibleTo zu verwenden.

Das ist bei Tests üblich, und ein weiteres Projekt wird benötigt, um die Funktionalität zu testen, die durch die interne Methode im Projekt markiert ist, sodass wir mit InternalsVisibleTo eine Methode, die nicht öffentlich sein sollte, nicht auf öffentlich umstellen müssen, um Unit-Tests durchzuführen.

Es gibt immer noch einige Dinge, auf die man achten sollte, wenn man InternalsVisibleTo verwendet, insbesondere ist PublicKey nicht leicht zu verstehen. Lassen Sie uns darüber sprechen, wie man dieses InternalsVisibleTo verwendet:

Erklären wir zunächst die Prämisse: Projekt1 ist ein funktionales Projekt, und Projekt1.Test (Assemblername: Project1.Test.dll) ist ein Testprojekt für Projekt1.

1. Öffne die Assembly.cs-Datei von Project1 und füge diesen Satz am Ende der Datei hinzu:


PublicKey=****** sollte durch den Project1.Test.dll Public Key ersetzt werden; wie man den PublicKey bekommt, siehe bitte den Abschnitt Anmerkungen am Ende des Artikels.

2. Überprüfen Sie, dass der Namensraum: System.Runtime.CompilerServices zur Namensraumreferenz des Assembly.cs hinzugefügt wird, da sich InternalsVisibleTo im Namensraum System.Runtime.CompilerService befindet.

Notes:

1. Wie bekomme ich einen PublicKey?

A: Verwenden Sie unter der Kommandozeile sn -tp Project1.Test.dll, um PublicKey und PublicKeyToken zu sehen

2. Wenn Project1 ein stark benanntes Projekt ist, muss InternalsVisibleTo einen PublicKey angeben, daher muss Project1.Test ebenfalls eine starke Signatur verwenden, um InternalsVisibleTo korrekt zu verwenden, andernfalls macht die Kompilierung einen Fehler, wenn Project1 keine starke Signatur verwendet, Dann muss Project1.Test keine starken Signaturen verwenden, und bei Verwendung von InternalsVisibleTo wird nur der Name der Assembly benötigt, und es ist nicht nötig, PuklicKey einzustellen.




Vorhergehend:InternalsVisibleToAttribute stellt das interne Mitglied der angegebenen Friend-Assembly zur Verfügung.
Nächster:[Mythos] Wird die Methode HttpApplication-Objekt-Init nur einmal ausgeführt?
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com