Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 21086|Risposta: 0

[Fonte] InternalsVisibleToAttribute espone il membro interno all'assembly amico specificato

[Copiato link]
Pubblicato su 06/02/2017 14:27:59 | | |
Introduzione all'Assemblea Youyuan
Sappiamo che i membri di una classe definiti come interni (inclusi tipi, metodi, proprietà, variabili, eventi) possono essere acceduti solo nello stesso assembly (ovviamente, sto parlando del modo normale, escludendo l'accesso tramite riflessione). Questa regola è in . .NET 2.0 è leggermente rotto, permettendoci di impostare i membri interni di un assembly per essere accessibili da membri specifici. Chiamiamo l'assembly che contiene questi membri interni assembly sorgente, e l'insieme dell'assembly è chiamato assembly amico.

Uso dell'assemblaggio degli amici
Questo Attributo viene utilizzato a livello di assemblaggio.


In questo modo, dopo che il programma FriendAssembly fa riferimento all'assembly, può accedere alla proprietà interna Name.
In generale, questo assembly:InternalsVisibleTo("FriendAssembly") è meglio posizionato nel AssemblyInfo.cs, dopotutto è a livello assembly.

Quando usare InternalsToVisibleTo
In effetti, questo attributo non viene utilizzato in applicazioni generali, e non dovremmo abusare di questo attributo. Perché, in generale, un assemblaggio ben progettato non deve necessariamente essere aperto al mondo esterno.
Ma gli scenari di unit testing possono sfruttare questa caratteristica. Con questa caratteristica, possiamo specificare che il codice dei test unitari abbia accesso a quei membri interni così da poterli testare in modo unitario. Tuttavia, questo richiede di scrivere il nome dell'assembly amico morto nell'assembly sorgente, il che causa alcuni problemi di sicurezza. La sicurezza può essere garantita introducendo assembly di firme.

InternalsToVisibleTo e l'assiematore della firma
Puoi specificare direttamente il nome e la chiave pubblica dell'assembly meta amico in InternalsVisibleTo.
Usa la riga di comando VS developer per generare la chiave pubblica di FriendAssembly:


Specifica il nome dell'assembly amico e la chiave pubblica dell'assembly sorgente:


Infatti, poiché l'assembly amico fa riferimento all'assembly sorgente, e l'assembly firmato fa riferimento a un assembly non firmato, e l'assembly firmato non può specificare un assembly amico senza segno, nessuno di essi è firmato, allora deve essere firmato.





Precedente:Vai automaticamente alla pagina del trasferimento dei pagamenti Tenpay e compila automaticamente le informazioni
Prossimo:Usa InternalsVisibleTo per aggiungere "assembly amico" all'assembly
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com