Ho un nome di file, come "Foo.dll", per una libreria che conosco è nella directory bin. Voglio creare un oggetto Assembly per questo. Sto cercando di creare un'istanza di questo oggetto da una classe che non è una pagina, quindi non ho l'oggetto Request per ottenere il percorso. Come ottengo il percorso che mi serve per utilizzare Assembly.Load()?Carica un assembly dal Cestino in ASP.NET
risposta
Assembly.Load non deve richiedere un percorso file, ma richiede un AssemblyName. Se si è certi che l'assembly si trova nel percorso di ricerca standard (ad esempio la directory bin), non è necessario conoscere il percorso del disco dell'assembly ... è sufficiente conoscere il nome dell'assembly. Nel caso della vostra assemblea, supponendo che non hanno bisogno di una versione specifica, cultura, ecc, il nome di montaggio dovrebbe essere solo "Foo":
Assembly fooAssembly = Assembly.Load("Foo");
Se si ha bisogno di caricare una versione specifica, è avrebbe fatto la seguente:
Assembly fooAssembly = Assembly.Load("Foo, Version=1.1.2, Culture=neutral");
In genere, si desidera utilizzare Assembly.Load, piuttosto che Assembly.LoadFrom o Assembly.LoadFile. LoadFrom e LoadFile funzionano al di fuori del processo di fusione standard e possono portare a caricare gli assembly più di una volta, caricati da posizioni non sicure, ecc. Assembly.Load esegue un caricamento "standard", ricercando le posizioni di assemblaggio standard come bin, GAC , ecc. e applica tutti i controlli di sicurezza standard.
Does Assembly.LoadFile (...) funziona?
Er, certo se si conosce il percorso assoluto. Immagino sia questa la parte importante della domanda. –
Dalla tua descrizione sembra che questa sia un'applicazione web, quindi, a meno che tu non sia su un thread asincrono generato da una richiesta, dovresti comunque avere accesso allo HttpContext
. Da lì è possibile utilizzare Server.MapPath() per il file necessario.
Un esempio completo che utilizzo, se aiuta. Risorse è una cartella sotto la radice della libreria DLL (Assemblea)
public static string ReadAssemblyResourceFile(string resourcefilename)
{
using (var stream = Assembly.Load("GM.B2U.DAL").GetManifestResourceStream("GM.B2U.DAL.Resources."
+ resourcefilename)) {
if (stream == null) throw new MyExceptionDoNotLog($"GM.B2U.DAL.Resources.{resourcefilename} not found in the Assembly GM.B2U.DAL.dll !");
using (var reader = new StreamReader(stream))
{
return reader.ReadToEnd();
}
}
}
per chiamare la funzione:
[TestMethod()]
public void ReadAssemblyResourceFileTest()
{
var res = SetupEngine.ReadAssemblyResourceFile("newdb.sql");
Assert.IsNotNull(res);
}
ps. Non dimenticare di contrassegnare "Build Action" come "Embedded Resource" (nella finestra delle proprietà) di ciascun file di risorse.
- 1. Carica un ResourceDictionary da un assembly
- 2. Come si ripristina un file dal cestino con C#?
- 3. ASP.NET MVC - Carica un file con SignalR
- 4. ASP.NET Come aggiungere assembly in web.config?
- 5. Come estrarre un assembly dal GAC?
- 6. Carica file ASP.NET 5
- 7. utilizza Assembly. Carica un riferimento statico o riferimento dinamico?
- 8. rinominare un file nel cestino
- 9. Carica file excel da risorse/assembly in C#
- 10. Cancella file Carica contenuto in ASP.NET
- 11. Carica documento html in javascript dal testo
- 12. Carica modello django dal database
- 13. assembly corrotto ASP.NET "Impossibile caricare file o assembly App_Web_ *"
- 14. Spring PropertyPlaceholderConfigurer carica dal DB
- 15. AngularJS Carica dati dal servizio
- 16. Picasso Carica immagine dal filesystem
- 17. Carica i dati dal file pickle Python in un ciclo?
- 18. Spostamento di un file nel Cestino (PHP)
- 19. Come mantenere in vita gli assembly ASP.NET in AppDomain?
- 20. Carica un assembly in fase di esecuzione che fa riferimento all'assieme chiamante
- 21. Come posso rilevare se un'unità ha un cestino in C#?
- 22. Carica immagine dal framework iOS 8
- 23. Carica array sparse dal file npy
- 24. Converti dati nel cestino quantile
- 25. ASP.NET - bin Directory e aggiunta di assembly in web.conf
- 26. ASP.Net MVC 4. Il routing di un controller in un assembly separato restituisce l'errore 404
- 27. Come caricare gli assembly in ASP.NET Core 1.0 RC2
- 28. Carica i file di origine dal file JSON in Gulpjs
- 29. Carica UIViewController dal file pennino separato in swift?
- 30. Sicurezza plug-in .NET Assembly
in alternativa se hai già un oggetto di un tipo in quell'assieme puoi fare qualcosa del tipo: obj.GetType(). Assembly –