voglio caricare l'assembly tramite il seguenteCaricamento un assembly Bytes perde la posizione
var loadedAssembly = Assembly.Load(File.ContentsAsBytes);
il File.ContentAsBytes restituisce il dll come byte[]
, tramite il seguente
System.IO.File.ReadAllBytes("dll location");
Il problema è il gruppo caricato (loadedAssembly
) perde la sua posizione fisica
- loadedAssembly.CodeBase - è impostato il gruppo che sta caricando esso (che non è corretto)
- loadedAssembly.Location - è vuoto
C'è un modo per caricare da un byte[]
e ottenere un risultato simile a Assembly.LoadFile
come ho bisogno del risultato di lavorare con il AppDomain.CurrentDomain.AssemblyResolve
Questo è il punto. Questo ha implicazioni di sicurezza profonde. Un'identità dell'assieme non è solo rappresentata dai suoi byte. Da dove è stato caricato (disco, internet, ecc.) È fondamentale. Non si può pretendere che un determinato insieme di byte sia, per esempio, mscorlib.dll. L'unico modo sarebbe salvarlo in un file temporaneo e caricarlo da lì, che potrebbe funzionare con AssemblyResolve, ma ciò solleva la domanda sul perché dovresti farlo in primo luogo? –
Non so quale sia il tuo contesto, ma non è un'opzione per tenere traccia di un dizionario tu stesso? –
@SimonMourier il lavoro è già stato pensato e può essere utilizzato nel mio scenario, ma l'applicazione sarebbe molto più flessibile se potessi realizzare quanto sopra. – dbones