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

Vista: 19548|Risposta: 0

[Fonte] Usa InternalsVisibleTo per aggiungere "assembly amico" all'assembly

[Copiato link]
Pubblicato su 06/02/2017 14:28:57 | | |

La parola chiave interna in C# può rendere disponibili i metodi, i campi o gli attributi marcati solo all'interno dell'assembly corrente, quindi cosa succede se altri assembly devono usare questo metodo interno? .NET offre un modo per eseguire questa funzione in modo simile alla classe friend in C++, ovvero l'uso di InternalsVisibleTo.

Questo è comune durante i test, e serve un altro progetto per testare la funzionalità contrassegnata dal metodo interno nel progetto, quindi con InternalsVisibleTo non dobbiamo cambiare un metodo che non dovrebbe essere pubblico a pubblico per poter fare test unitari.

Ci sono ancora alcune cose a cui prestare attenzione quando si usa InternalsVisibleTo, soprattutto PublicKey non è facile da capire, parliamo di come usare questo InternalsVisibleTo:

Spieghiamo prima la premessa: il Progetto1 è un progetto funzionale, e il Progetto1. Test (nome assembly: Project1.Test.dll) è un progetto di prova per il Progetto1.

1. Apri il file Assembly.cs di Project1 e aggiungi questa frase alla fine del file:


PublicKey=****** dovrebbe essere sostituito con la chiave pubblica Project1.Test.dll, per quanto riguarda come ottenere la PublicKey, si prega di consultare la sezione Note alla fine dell'articolo.

2. Verifica che questo namespace: System.Runtime.CompilerServices viene aggiunto al riferimento dello spazio dei nomi della Assembly.cs, poiché InternalsVisibleTo si trova nello spazio di nomi System.Runtime.CompilerService.

Notes:

1. Come posso ottenere una PublicKey?

R: Nella riga di comando, usa sn -tp Project1.Test.dll per vedere PublicKey e PublicKeyToken

2. Se Project1 è un progetto con un nome forte, allora InternalsVisibleTo deve specificare una PublicKey, quindi Project1.Test deve anche usare una firma forte per usare correttamente InternalsVisibleTo, altrimenti la compilazione commetterà un errore, se Project1 non usa una firma forte, Allora Project1.Test non deve usare firme forti, e quando si usa InternalsVisibleTo, è necessario solo il nome dell'assemblaggio, e non è necessario impostare la PuklicKey.




Precedente:InternalsVisibleToAttribute espone il membro interno all'assembly amico specificato
Prossimo:[Mito] Il metodo Init dell'oggetto HttpApplication verrà eseguito solo una volta?
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