Műholdas szerelvény betöltési algoritmusa

A műholdas szerelvények a nyelvhez és a kultúrához testre szabott honosított erőforrások tárolására szolgálnak.

A műholdas szerelvények más rakodási algoritmust használnak, mint az általánosan felügyelt szerelvények.

Mikor töltődnek be a szatellit szerelvények?

A satellite assemblyek betöltésre kerülnek a lokalizált erőforrások betöltésekor.

A honosított erőforrások betöltéséhez szükséges alapvető API az System.Resources.ResourceManager osztály. Végül az ResourceManager osztály meghívja az GetSatelliteAssembly metódust minden egyes CultureInfo.Name esetén.

A magasabb szintű API-k elvonhatják az alacsony szintű API-t.

Algoritmus

A .NET Core-erőforrás-visszavételi folyamat a következő lépéseket foglalja magában:

  1. Határozza meg a activeAssemblyLoadContext példányt. Minden esetben a active példány a végrehajtó szerelvényének AssemblyLoadContext.

  2. A active példány a következő prioritási sorrendben tölt be egy műholdas egységet a kért kultúrához:

  3. Ha egy műholdas szerelvény be van töltve:

    • Az AppDomain.AssemblyLoad esemény elő van állítva.
    • A rendszer megkeresi a kért erőforrást a szerelvényben. Ha a futtatókörnyezet megkeresi az erőforrást a szerelvényben, azt használja. Ha nem találja az erőforrást, folytatja a keresést.

    Megjegyzés

    Ha erőforrást szeretne keresni a satellite assembly-ben, a futtatókörnyezet megkeresi a ResourceManager által kért CultureInfo.Name erőforrásfájlt az aktuális környezethez. Az erőforrásfájlban megkeresi a kért erőforrásnevet. Ha egyik sem található, az erőforrás nem találhatóként lesz kezelve.

  4. A ResourceManager következő lépésnél a szülőkultúra összeszerelésein keresztül több lehetséges szinten keresés történik, mindegyik alkalommal megismételve a 2. és 3. lépést.

    Minden kultúrának csak egy szülője van, amelyet a CultureInfo.Parent tulajdonság határoz meg.

    A szülőkultúrák keresése leáll, ha egy kultúra Parent tulajdonsága CultureInfo.InvariantCulture.

    InvariantCultureA 2. és 3. lépéshez nem térünk vissza, hanem az 5. lépéssel folytatjuk.

  5. Ha az erőforrás továbbra sem található, az ResourceManager erőforrást használja az alapértelmezett (tartalék) kultúrához.

    Az alapértelmezett kultúra erőforrásai általában a fő alkalmazásszerelvény részét képezik. Azonban megadhatja a UltimateResourceFallbackLocation.Satellite értéket a NeutralResourcesLanguageAttribute.Location tulajdonsághoz. Ez az érték azt jelzi, hogy az erőforrások végső tartalék helye nem a főszerelvény, hanem egy műholdas szerelvény.

    Megjegyzés

    Az alapértelmezett kultúra a végső tartalék. Ezért azt javasoljuk, hogy mindig tartalmazzon teljes erőforráskészletet az alapértelmezett erőforrásfájlban. Ez segít megakadályozni a kivételek dobását. A teljes készlettel tartalékot biztosít az összes erőforráshoz, és biztosíthatja, hogy legalább egy erőforrás mindig jelen legyen a felhasználó számára, még akkor is, ha az nem kulturálisan specifikus.

  6. Végül