Sdílet prostřednictvím


MetadataAssemblyResolver.Resolve(MetadataLoadContext, AssemblyName) Metoda

Definice

Vrátí sestavení z daného názvu sestavení.

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

Parametry

context
MetadataLoadContext

Metadata načtení kontextový objekt, který představuje uzavřený vesmír Type objektů načtených pouze pro účely kontroly.

assemblyName
AssemblyName

Název sestavení.

Návraty

Sestavení pro zadaný assemblyName.

Poznámky

Vazba názvu sestavení na sestavení nastane, když LoadFromAssemblyName je volán nebo když je typ z jednoho sestavení závislý na jiném sestavení. Obslužná rutina, která přepisuje Resolve , by měla použít MetadataLoadContext.LoadFromStream, MetadataLoadContext.LoadFromAssemblyPath nebo MetadataLoadContext.LoadFromByteArray k načtení požadovaného sestavení a jeho vrácení.

Pokud chcete označit selhání při hledání sestavení, měla by obslužná rutina vrátit null místo vyvolání výjimky. null Vrácením se potvrdí selhání, takže budoucí pokusy o načtení názvu selžou bez opětovného vyvolání obslužné rutiny.

Pokud obslužná rutina vyvolá výjimku, výjimka se předá aplikaci, která vyvolala operaci, která vazbu aktivovala. Nezachytí MetadataLoadContext ho a nedojde k žádné vazbě.

Obslužná rutina obecně nebude volána více než jednou pro stejný název, pokud dvě vlákna závodí na načtení stejného sestavení. I v takovém případě jeden výsledek vyhraje a bude atomicky svázán s názvem.

Záměrně MetadataLoadContext neprovádí žádné porovnání ref-def u vráceného sestavení, protože to, co tvoří shodu ref-def, je zásada. Jedná se také o druh libovolného omezení, kterému MetadataLoadContext se snaží zabránit.

Nemůže MetadataLoadContext využívat sestavení z jiných kontextů načítání metadat nebo jiných zprostředkovatelů typů (například vlastní systém reflexe podkladového modulu runtime). Pokud obslužná rutina vrátí takové sestavení, MetadataLoadContext vyvolá FileLoadExceptionobjekt .

Platí pro