MetadataAssemblyResolver.Resolve(MetadataLoadContext, AssemblyName) Metod

Definition

Returnerar en sammansättning från ett angivet sammansättningsnamn.

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

Parametrar

context
MetadataLoadContext

Kontextobjektet för metadatainläsning som representerar det stängda universumet av Type objekt som läses in för endast inspektion.

assemblyName
AssemblyName

Namnet på församlingen.

Returer

Sammansättningen för den angivna assemblyName.

Kommentarer

Bindning av ett sammansättningsnamn till en sammansättning sker när LoadFromAssemblyName anropas eller när en typ från en sammansättning har ett beroende av en annan sammansättning. Den hanterare som åsidosätter Resolve ska använda MetadataLoadContext.LoadFromStream, MetadataLoadContext.LoadFromAssemblyPath eller MetadataLoadContext.LoadFromByteArray för att läsa in den begärda sammansättningen och returnera den.

För att indikera att det inte gick att hitta en sammansättning bör hanteraren returnera null i stället för att utlösa ett undantag. När du returnerar null checkas felet in så att framtida försök att läsa in det namnet misslyckas utan att hanteraren anropas igen.

Om hanteraren utlöser ett undantag skickas undantaget till programmet som anropade åtgärden som utlöste bindningen. Kommer MetadataLoadContext inte att fånga den, och ingen bindning kommer att ske.

Hanteraren anropas vanligtvis inte mer än en gång för samma namn, såvida inte två trådar tävlar om att läsa in samma sammansättning. Även i det fallet kommer ett resultat att vinna och vara atomiskt bundet till namnet.

Avsiktligt MetadataLoadContext utför ingen ref-def matchning på den returnerade sammansättningen eftersom vad som utgör en ref-def matchning är en princip. Det är också den typ av godtycklig begränsning som MetadataLoadContext strävar efter att undvika.

Det MetadataLoadContext går inte att använda sammansättningar från andra metadatainläsningskontexter eller andra typprovidrar (till exempel den underliggande körningens eget reflektionssystem). Om en hanterare returnerar en sådan sammansättning, MetadataLoadContext genererar en FileLoadException.

Gäller för