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

Vista: 46998|Risposta: 2

[Fonte] .NET non riceve l'assemblaggio completo dell'assembly di riferimento

[Copiato link]
Pubblicato su 22/08/2020 10:41:02 | | | |
Usa. .NET per ottenere l'assembly caricato è incompleto, anche se ci riferiamo ad altre librerie, ma senza chiamare, non può essere ottenuto nell'assembly caricato; questo articolo condivide per ottenere l'assembly completo in WinForm e ASP.NET.

Introduzione

Usa. .NET per ottenere l'assembly caricato è incompleto, anche se ci riferiamo ad altre librerie, ma senza chiamare, non può essere ottenuto nell'assembly caricato; questo articolo condivide per ottenere l'assembly completo in WinForm e ASP.NET.

ASP.NET (non misurato)

Il .NET Framework rimanda il caricamento degli assembly nell'AppDomain corrente finché non sono necessari. Ad esempio, se richiami solo una libreria di terze parti da SomeMethod(), la DLL di terze parti di solito non verrà caricata fino alla prima esecuzione di SomeMethod().

AppDomain.GetAssemblies() ti fornisce tutti gli assembly che sono stati caricati nell'AppDomain corrente. BuildManager.GetReferencedAssemblies() restituisce una lista di tutti gli assembly citati da Web.config e altre posizioni, e carica tali assembly nell'AppDomain corrente.

Codice:



WinForm

Inizia usando il codice qui sotto per ottenere l'assembly caricato.



Il numero di assembly assembly ottenuti è 12, come mostrato nella figura seguente:



Quando non chiamiamo i metodi di altre librerie, l'applicazione principale non carica le sue dll, probabilmente per risparmiare overhead di prestazioni, quindi la prima volta che chiamiamo i metodi di altre librerie potrebbe essere un po' più lento.

Usa il codice modificato, come segue:





Il numero di assembly assembly ottenuti è 117, e il principio è mettere il dll nella directory dell'applicazione e caricarlo.

In questo caso, quando si chiama AppDomain.CurrentDomain.GetAssemblies(). Metodo ToList(), puoi ottenere l'assemblaggio completo, che potrebbe essere più di 117.

Prendi l'assemblaggio attuale





Precedente:.NET utilizza la cache Redis per le notifiche di scadenza
Prossimo:Strumento di gestione professionale per il business di ServiceNow nel cloud IT
 Padrone di casa| Pubblicato su 25/12/2020 15:50:46 |
Pubblicato su 22/09/2021 20:39:35 |
Impara a imparare...
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