Share via


Uydu derleme yükleme algoritması

Uydu derlemeleri, dil ve kültür için özelleştirilmiş yerelleştirilmiş kaynakları depolamak için kullanılır.

Uydu derlemeleri, genel yönetilen derlemelerden farklı bir yükleme algoritması kullanır.

Uydu derlemeleri ne zaman yüklenir?

Yerelleştirilmiş bir kaynak yüklenirken uydu derlemeleri yüklenir.

Yerelleştirilmiş kaynakları yüklemek için temel API sınıfıdır System.Resources.ResourceManager . Sonuçta ResourceManager sınıfı her CultureInfo.Nameiçin yöntemini çağırırGetSatelliteAssembly.

Üst düzey API'ler alt düzey API'yi soyutlar.

Algoritma

.NET Core kaynak geri dönüş işlemi aşağıdaki adımları içerir:

  1. activeAssemblyLoadContext Örneği belirleyin. Her durumda, active örneği yürüten derlemenin AssemblyLoadContextörneğidir.

  2. Örnek, active istenen kültür için aşağıdaki öncelik sırasına göre bir uydu derlemesi yükler:

  3. Bir uydu derlemesi yüklenirse:

    • Olay AppDomain.AssemblyLoad oluşturulur.
    • Derleme istenen kaynak için arandı. Çalışma zamanı derlemedeki kaynağı bulursa kullanır. Kaynağı bulamazsa aramaya devam eder.

    Not

    Uydu derlemesinde bir kaynak bulmak için çalışma zamanı geçerli CultureInfo.Nameiçin tarafından istenen ResourceManager kaynak dosyasını arar. Kaynak dosyasının içinde istenen kaynak adını arar. Bu kaynaklardan biri bulunamazsa, kaynak bulunamadı olarak değerlendirilir.

  4. Sonraki ResourceManager , her seferinde 2 . 3. adımları yineleyerek birçok olası düzeyde üst kültür derlemelerini arar.

    Her kültürün özelliği tarafından CultureInfo.Parent tanımlanan yalnızca bir üst öğesi vardır.

    Bir kültürün özelliği olduğunda CultureInfo.InvariantCultureüst kültür Parent araması durdurulur.

    InvariantCultureiçin 2. ve 3. adımlara geri dönmez, 5. adımla devam ederiz.

  5. Kaynak hala bulunamazsa, ResourceManager varsayılan (geri dönüş) kültürü için kaynağı kullanır.

    Genellikle, varsayılan kültür kaynakları ana uygulama derlemesine dahil edilir. Ancak özelliği için NeutralResourcesLanguageAttribute.Location belirtebilirsinizUltimateResourceFallbackLocation.Satellite. Bu değer, kaynaklar için nihai geri dönüş konumunun ana derleme yerine bir uydu derlemesi olduğunu gösterir.

    Not

    Varsayılan kültür, nihai geri dönüştür. Bu nedenle, varsayılan kaynak dosyasına her zaman kapsamlı bir kaynak kümesi eklemenizi öneririz. Bu, özel durumların oluşmasını önlemeye yardımcı olur. Kapsamlı bir kümeye sahip olarak, tüm kaynaklar için bir geri dönüş sağlar ve kültürel olarak özel olmasa bile kullanıcı için her zaman en az bir kaynağın mevcut olduğundan emin olursunuz.

  6. Sonunda