MetadataAssemblyResolver.Resolve(MetadataLoadContext, AssemblyName) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Restituisce un assembly da un nome di assembly specificato.
public:
abstract System::Reflection::Assembly ^ Resolve(System::Reflection::MetadataLoadContext ^ context, System::Reflection::AssemblyName ^ assemblyName);
public abstract System.Reflection.Assembly? Resolve (System.Reflection.MetadataLoadContext context, System.Reflection.AssemblyName assemblyName);
abstract member Resolve : System.Reflection.MetadataLoadContext * System.Reflection.AssemblyName -> System.Reflection.Assembly
Public MustOverride Function Resolve (context As MetadataLoadContext, assemblyName As AssemblyName) As Assembly
Parametri
- context
- MetadataLoadContext
Oggetto del contesto di caricamento dei metadati che rappresenta l'universo chiuso di oggetti Type caricati solo a scopo di controllo.
- assemblyName
- AssemblyName
Nome dell'assembly.
Restituisce
Assembly per l'oggetto assemblyName
specificato.
Commenti
L'associazione di un nome di assembly a un assembly si verifica quando LoadFromAssemblyName viene chiamato o quando un tipo da un assembly ha una dipendenza da un altro assembly. Il gestore che esegue l'override Resolve
deve usare MetadataLoadContext.LoadFromStreamo MetadataLoadContext.LoadFromAssemblyPathMetadataLoadContext.LoadFromByteArray per caricare l'assembly richiesto e restituirlo.
Per indicare l'errore di trovare un assembly, il gestore deve restituire null
anziché generare un'eccezione. La restituzione null
esegue il commit dell'errore in modo che i tentativi futuri di caricare tale nome avranno esito negativo senza richiamare nuovamente il gestore.
Se il gestore genera un'eccezione, l'eccezione verrà passata all'applicazione che ha richiamato l'operazione che ha attivato l'associazione. L'oggetto MetadataLoadContext non lo intercetta e non verrà eseguito alcun binding.
Il gestore in genere non verrà chiamato più volte per lo stesso nome, a meno che due thread non eseguano la corsa per caricare lo stesso assembly. Anche in questo caso, un risultato vincerà e verrà associato atomicamente al nome.
L'oggetto MetadataLoadContext esegue intenzionalmente alcuna corrispondenza ref-def nell'assembly restituito perché ciò che costituisce una corrispondenza ref-def è un criterio. È anche il tipo di restrizione arbitraria che MetadataLoadContext cerca di evitare.
Non MetadataLoadContext è possibile utilizzare assembly da altri contesti di caricamento dei metadati o altri provider di tipi, ad esempio il sistema di reflection del runtime sottostante. Se un gestore restituisce un assembly di questo tipo, genera un'eccezione MetadataLoadContextFileLoadException.