Dela via


Algoritm för inläsning av satellitsammansättning

Satellitsammansättningar används för att lagra lokaliserade resurser anpassade för språk och kultur.

Satellitsammansättningar använder en annan inläsningsalgoritm än allmänna hanterade sammansättningar.

När läses satellitsammansättningar in?

Satellitsammansättningar läses in när en lokaliserad resurs läses in.

Det grundläggande API:et System.Resources.ResourceManager för att läsa in lokaliserade resurser är klassen. I slutändan ResourceManager anropar GetSatelliteAssembly klassen metoden för varje CultureInfo.Name.

API:er på högre nivå kan abstrahera API:et på låg nivå.

Algoritm

Återställningsprocessen för .NET Core-resurser omfattar följande steg:

  1. Fastställ instansen active AssemblyLoadContext . I samtliga fall är instansen active den körande sammansättningens AssemblyLoadContext.

  2. Instansen active läser in en satellitsammansättning för den begärda kulturen i följande prioritetsordning:

  3. Om en satellitsammansättning läses in:

    • Händelsen AppDomain.AssemblyLoad aktiveras.
    • Sammansättningen söks efter den begärda resursen. Om körningen hittar resursen i sammansättningen använder den den. Om den inte hittar resursen fortsätter sökningen.

    Kommentar

    För att hitta en resurs i satellitsammansättningen söker körningen efter resursfilen som begärs av ResourceManager för den aktuella CultureInfo.Name. I resursfilen söker den efter det begärda resursnamnet. Om någon av dem inte hittas behandlas resursen som inte hittad.

  4. Nästa ResourceManager söker igenom de överordnade kultursammansättningarna genom många potentiella nivåer, varje gång upprepa steg 2 och 3.

    Varje kultur har bara en överordnad CultureInfo.Parent , vilket definieras av egenskapen.

    Sökningen efter överordnade kulturer stoppas när en kulturs Parent egenskap är CultureInfo.InvariantCulture.

    InvariantCultureFör går vi inte tillbaka till steg 2 och 3, utan fortsätter i stället med steg 5.

  5. Om resursen fortfarande inte hittas ResourceManager använder resursen för standardkulturen (återställning).

    Vanligtvis ingår resurserna för standardkulturen i huvudprogramsammansättningen. Du kan dock ange UltimateResourceFallbackLocation.Satellite för egenskapen NeutralResourcesLanguageAttribute.Location . Det här värdet anger att den ultimata återställningsplatsen för resurser är en satellitsammansättning snarare än huvudsammansättningen.

    Kommentar

    Standardkulturen är den ultimata reserven. Därför rekommenderar vi att du alltid inkluderar en fullständig uppsättning resurser i standardresursfilen. Detta förhindrar att undantag utlöses. Genom att ha en fullständig uppsättning ger du en reserv för alla resurser och ser till att minst en resurs alltid finns för användaren, även om den inte är kulturellt specifik.

  6. Slutligen