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
|