Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 21086|Svar: 0

[Källa] InternalsVisibleToAttribute exponerar den interna medlemmen för den angivna vänsammansättningen

[Kopiera länk]
Publicerad på 2017-02-06 14:27:59 | | |
Introduktion till Youyuan-församlingen
Vi vet att medlemmar av en klass som definieras som interna (inklusive typer, metoder, egenskaper, variabler, händelser) endast kan nås i samma assembly (jag syftar förstås på det normala sättet här, utan åtkomst via reflektion). Denna regel finns i . .NET 2.0 är något trasigt, vilket gör att vi kan ställa in en assemblers interna medlemmar så att specifika medlemmar kan nå. Vi kallar sammansättningen som innehåller dessa interna medlemmar källsammansättningen, och sammansättningsmängden kallas vänsammansättningen.

Användning av vänmontering
Denna attribut används på monteringsnivå.


På så sätt kan FriendAssembly-programmet efter att ha refererat assembleren komma åt den interna egenskapen Name.
Generellt sett är denna assembly:InternalsVisibleTo("FriendAssembly") bättre placerad i AssemblyInfo.cs, den är ju på monteringsnivå.

När ska man använda InternalsToVisibleTo
Faktum är att denna attribut inte används i allmänna tillämpningar, och vi bör inte missbruka detta attribut. För generellt behöver en väl utformad samling inte vara öppen mot omvärlden.
Men enhetstestningsscenarier kan dra nytta av denna funktion. Med denna funktion kan vi specificera att koden för enhetstester har tillgång till dessa interna medlemmar så att vi kan enhetstesta dessa medlemmar. Detta kräver dock att namnet på vän-assembleren skrivs död i käll-assembleren, vilket orsakar vissa säkerhetsproblem. Säkerhet kan garanteras genom att införa signatursammansättningar.

InternalsToVisibleTo och signaturmonteringen
Du kan direkt ange namnet och den publika nyckeln för vän-meta-assemblern till InternalsVisibleTo.
Använd VS-utvecklarkommandoraden för att generera den publika nyckeln för FriendAssembly:


Ange namnet på vän-assemblyn och den publika nyckeln till källassemblyn:


Faktum är att eftersom vän-assembleren refererar till käll-assembleren, och den signerade assembleren refererar till en osignerad assembly, och den signerade assembleren inte kan specificera en osignerad vän-assembly, är någon av dem signerade, då måste de signeras.





Föregående:Gå automatiskt till Tenpay-betalningsöverföringssidan och fyll i informationen automatiskt
Nästa:Använd InternalsVisibleTo för att lägga till "friend assembly" i assembly
Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com