Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Spravovaná sestavení jsou lokalizována a načítána pomocí algoritmu s několika různými fázemi.
Všechna spravovaná sestavení s výjimkou satelitních sestavení a WinRT sestavení používají stejný algoritmus.
Kdy jsou spravovaná sestavení načtena?
Nejběžnějším mechanismem pro aktivaci zatížení spravovaného sestavení je statický odkaz na sestavení. Tyto odkazy kompilátor vloží pokaždé, když kód používá typ definovaný v jiném sestavení. Tato sestavení se načtou (load-by-name) podle potřeby běhového prostředí. Přesný čas načtení odkazů na statické sestavení není specifikován. Může se lišit mezi verzemi modulu runtime a je ovlivněn optimalizacemi, jako je vkládání.
Přímé použití následujících rozhraní API také aktivuje načtení:
Algoritmus
Následující algoritmus popisuje, jak modul runtime načte spravované sestavení.
Určete
activeAssemblyLoadContext.- U statického odkazu na sestavení je instancí, která načetla odkazující sestavení,
activeAssemblyLoadContext. - Upřednostňovaná rozhraní API explicitně vyjadřují
activeAssemblyLoadContext. - Další API odvodí
activeAssemblyLoadContext. Pro tato rozhraní API se AssemblyLoadContext.CurrentContextualReflectionContext vlastnost používá. Pokud jenulljeho hodnota , použije se odvozená AssemblyLoadContext instance. - Podívejte se na tabulku v části Kdy jsou načtena spravovaná sestavení?
- U statického odkazu na sestavení je instancí, která načetla odkazující sestavení,
Pro metody
Load-by-namenačteactiveAssemblyLoadContext sestavení v následujícím pořadí priority:- Zkontrolujte jeho
cache-by-name. - Volejte funkci AssemblyLoadContext.Load.
- Zkontrolujte mezipaměť instance a spusťte logiku výchozího sondování AssemblyLoadContext.Defaultspravovaného sestavení. Pokud je sestavení nově načteno, přidá se odkaz na instance AssemblyLoadContext.Default
cache-by-name. - Vyvolání události AssemblyLoadContext.Resolving pro aktivní AssemblyLoadContext.
- Vyvolejte událost AppDomain.AssemblyResolve
- Zkontrolujte jeho
U ostatních typů zatížení načte sestavení
activeAssemblyLoadContext v pořadí následujících priorit:- Zkontrolujte jeho
cache-by-name. - Načtení ze zadané cesty nebo nezpracovaného objektu sestavení. Pokud je sestavení nově načteno, odkaz se přidá do instance
activeAssemblyLoadContextcache-by-name.
- Zkontrolujte jeho
V obou případech, pokud je sestavení nově načteno, je událost AppDomain.AssemblyLoad vyvolána.