MissingSatelliteAssemblyException Sınıf

Tanım

Varsayılan kültürün kaynakları için uydu derlemesi eksik olduğunda oluşan özel durum.

public ref class MissingSatelliteAssemblyException : SystemException
public class MissingSatelliteAssemblyException : SystemException
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public class MissingSatelliteAssemblyException : SystemException
type MissingSatelliteAssemblyException = class
    inherit SystemException
[<System.Runtime.InteropServices.ComVisible(true)>]
[<System.Serializable>]
type MissingSatelliteAssemblyException = class
    inherit SystemException
Public Class MissingSatelliteAssemblyException
Inherits SystemException
Devralma
MissingSatelliteAssemblyException
Öznitelikler

Örnekler

Aşağıdaki örnek, İngilizce'nin NeutralResourcesLanguageAttribute uygulamanın varsayılan kültürü olduğunu ve kaynaklarının bir uydu derlemesinde depolandığını belirtmek için özniteliğini kullanır. Örnek, aşağıdaki tabloda açıklandığı gibi İngilizce ve Fransızca kültürleri için .txt dosyalarındaki kaynakları içerir:

Kültür Kaynak adı/değeri Dosya adı
İngilizce Greet=Hello Greet.en.txt
Fransızca Greet=Bonjour Greet.fr.txt

Aşağıdaki kaynak kodu, geçerli kullanıcı arabirimi kültürünü önce Fransızca (Fransa) ve ardından Rusça (Rusya) olarak değiştiren ve her iki durumda da kültüre özgü uygun bir kaynak görüntüleyen bir uygulama oluşturur.

using System;
using System.Globalization;
using System.Resources;
using System.Threading;

[assembly:NeutralResourcesLanguageAttribute("en", UltimateResourceFallbackLocation.Satellite)]

public class Example
{
   public static void Main()
   {
      ResourceManager rm = new ResourceManager("GreetResources", typeof(Example).Assembly); 
      Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture("fr-FR");
      Console.WriteLine("The current UI culture is {0}", Thread.CurrentThread.CurrentUICulture.Name);
      Console.WriteLine(rm.GetString("Greet"));
      
      Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture("ru-RU");
      Console.WriteLine("The current UI culture is {0}", Thread.CurrentThread.CurrentUICulture.Name);
      Console.WriteLine(rm.GetString("Greet"));
   }
}
// The example displays the following output when created using BuildNoDefault.bat: 
//    The current UI culture is fr-FR
//    Bonjour
//    The current UI culture is ru-RU
//    
//    Unhandled Exception: System.Resources.MissingSatelliteAssemblyException: 
//    The satellite assembly named "HelloWorld.resources.dll, PublicKeyToken=" for fallback culture 
//    "en" either could not be found or could not be loaded. This is generally a setup problem. 
//    Please consider reinstalling or repairing the application.
//       at System.Resources.ManifestBasedResourceGroveler.HandleSatelliteMissing()
//       at System.Resources.ManifestBasedResourceGroveler.GrovelForResourceSet(CultureInfo cult
//    ure, Dictionary`2 localResourceSets, Boolean tryParents, Boolean createIfNotExists, StackC
//    rawlMark& stackMark)
//       at System.Resources.ResourceManager.InternalGetResourceSet(CultureInfo requestedCulture
//    , Boolean createIfNotExists, Boolean tryParents, StackCrawlMark& stackMark)
//       at System.Resources.ResourceManager.InternalGetResourceSet(CultureInfo culture, Boolean
//     createIfNotExists, Boolean tryParents)
//       at System.Resources.ResourceManager.GetString(String name, CultureInfo culture)
//       at Example.Main()
// The example displays the following output when created using BuildDefault.bat:
//    The current UI culture is fr-FR
//    Bonjour
//    The current UI culture is ru-RU
//    Hello
Imports System.Globalization
Imports System.Resources
Imports System.Threading

<assembly:NeutralResourcesLanguageAttribute("en", UltimateResourceFallbackLocation.Satellite)>

Module Example
   Public Sub Main()
      Dim rm As New ResourceManager("GreetResources", GetType(Example).Assembly) 
      Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture("fr-FR")
      Console.WriteLine("The current UI culture is {0}", Thread.CurrentThread.CurrentUICulture.Name)
      Console.WriteLine(rm.GetString("Greet"))
      
      Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture("ru-RU")
      Console.WriteLine("The current UI culture is {0}", Thread.CurrentThread.CurrentUICulture.Name)
      Console.WriteLine(rm.GetString("Greet"))
   End Sub
End Module
' The example displays the following output:
'    The current UI culture is fr-FR
'    Bonjour
'    The current UI culture is ru-RU
'    
'    Unhandled Exception: System.Resources.MissingSatelliteAssemblyException: 
'    The satellite assembly named "HelloWorld.resources.dll, PublicKeyToken=" for fallback culture 
'    "en" either could not be found or could not be loaded. This is generally a setup problem. 
'    Please consider reinstalling or repairing the application.
'       at System.Resources.ManifestBasedResourceGroveler.HandleSatelliteMissing()
'       at System.Resources.ManifestBasedResourceGroveler.GrovelForResourceSet(CultureInfo cult
'    ure, Dictionary`2 localResourceSets, Boolean tryParents, Boolean createIfNotExists, StackC
'    rawlMark& stackMark)
'       at System.Resources.ResourceManager.InternalGetResourceSet(CultureInfo requestedCulture
'    , Boolean createIfNotExists, Boolean tryParents, StackCrawlMark& stackMark)
'       at System.Resources.ResourceManager.InternalGetResourceSet(CultureInfo culture, Boolean
'     createIfNotExists, Boolean tryParents)
'       at System.Resources.ResourceManager.GetString(String name, CultureInfo culture)
'       at Example.Main()
' The example displays the following output when created using BuildDefault.bat:
'    The current UI culture is fr-FR
'    Bonjour
'    The current UI culture is ru-RU
'    Hello

Aşağıdaki toplu iş dosyasını kullanarak örneğin C# sürümünü derleyebilir ve yürütebilirsiniz. Visual Basic kullanıyorsanız öğesini csc ile vbcdeğiştirin ve uzantısını .cs ile .vbdeğiştirin. Örnek yürütülürken Fransızca dil dizesini görüntüler ancak geçerli kültür Rusça (Rusya) olduğunda bir MissingSatelliteAssemblyException özel durum oluşturur. Bunun nedeni, uydu derlemesinin varsayılan kültürün kaynaklarını içeren en\HelloWorld.dll mevcut olmamasıdır.

vbc HelloWorld.vb  

md fr  
resgen Greet.fr.txt  
al /out:fr\HelloWorld.resources.dll /culture:fr /embed:GreetResources.fr.resources  

HelloWorld  

Aşağıdaki toplu iş dosyasını kullanarak örneğin Visual Basic sürümünü derleyebilir ve yürütebilirsiniz. C# kullanıyorsanız değerini vbc ile cscdeğiştirin ve uzantısını .vb ile .csdeğiştirin. Örnek yürütürken, geçerli kullanıcı arabirimi kültürü Fransızca (Fransa) olduğunda bir Fransızca dil dizesi görüntüler. Geçerli kullanıcı arabirimi kültürü Rusya (Rusça) olduğunda, Rusça dil kaynakları mevcut olmadığından bir İngilizce dil dizesi görüntüler, ancak kaynak yöneticisi varsayılan kültürün kaynaklarını uydu derlemesinden en\HelloWorld2.dll yükleyebilir.

vbc HelloWorld.vb /out:HelloWorld2.exe  

md fr  
resgen GreetResources.fr.txt  
al /out:fr\HelloWorld2.resources.dll /culture:fr /embed:GreetResources.fr.resources  

md en  
resgen GreetResources.en.txt  
al /out:en\HelloWorld2.resources.dll /culture:en /embed:GreetResources.en.resources  

HelloWorld2  

Açıklamalar

Varsayılan kültür, uygun kültüre özgü kaynaklar bulunamazsa kaynakları yüklenen kültürdür. Varsayılan olarak, varsayılan kültüre yönelik kaynaklar ana derlemede bulunur ve MissingManifestResourceException kaynak yöneticisi varsayılan kültür için bir kaynak almayı dener ancak bulamazsa oluşturulur. Ancak özniteliği konum parametresi için değerini belirtirseNeutralResourcesLanguageAttribute, .NET Framework bir uygulamanın varsayılan kültürüne yönelik UltimateResourceFallbackLocation.Satellite kaynakları uydu derlemesinden yükler. Bu durumda, MissingSatelliteAssemblyException kaynak yöneticisi varsayılan kültürün kaynağını almaya çalıştığında ve özniteliğinde NeutralResourcesLanguageAttribute belirtilen kültür için uydu derlemesi eksik olduğunda özel durum oluşturulur. Özel durumun, nesne örneği oluşturulurken değil veya ResourceManager.GetObjectgibi ResourceManager.GetString bir kaynak alma yöntemi tarafından oluştuğunu ResourceManager unutmayın.

MissingSatelliteAssemblyException değeri 0x80131536 olan HRESULT COR_E_MISSINGSATELLITEASSEMBLY kullanır.

MissingSatelliteAssemblyException başvuru eşitliğini destekleyen varsayılan Equals uygulamayı kullanır.

Sınıfının bir örneğinin ilk özellik değerlerinin MissingSatelliteAssemblyException listesi için oluşturuculara MissingSatelliteAssemblyException bakın.

Not

Uygulamanızın varsayılan kültürünü tanımlamak için her zaman özniteliğini NeutralResourcesLanguageAttribute kullanmanız gerekir, böylece belirli bir kültüre ait bir kaynak kullanılamıyorsa uygulamanız kabul edilebilir bir davranış görüntüler.

Oluşturucular

MissingSatelliteAssemblyException()

Sınıfın MissingSatelliteAssemblyException yeni bir örneğini varsayılan özelliklerle başlatır.

MissingSatelliteAssemblyException(SerializationInfo, StreamingContext)

Serileştirilmiş verilerden sınıfının yeni bir örneğini MissingSatelliteAssemblyException başlatır.

MissingSatelliteAssemblyException(String)

Belirtilen hata iletisiyle sınıfının yeni bir örneğini MissingSatelliteAssemblyException başlatır.

MissingSatelliteAssemblyException(String, Exception)

Belirtilen bir hata iletisi ve bu özel durumun nedeni olan iç özel duruma başvuru ile sınıfının yeni bir örneğini MissingSatelliteAssemblyException başlatır.

MissingSatelliteAssemblyException(String, String)

Belirtilen bir hata iletisi ve nötr bir kültürün MissingSatelliteAssemblyException adıyla sınıfının yeni bir örneğini başlatır.

Özellikler

CultureName

Varsayılan kültürün adını alır.

Data

Özel durum hakkında kullanıcı tanımlı ek bilgiler sağlayan bir anahtar/değer çifti koleksiyonu alır.

(Devralındığı yer: Exception)
HelpLink

Bu özel durumla ilişkili yardım dosyasının bağlantısını alır veya ayarlar.

(Devralındığı yer: Exception)
HResult

Belirli bir özel duruma atanan kodlanmış sayısal bir değer olan HRESULT değerini alır veya ayarlar.

(Devralındığı yer: Exception)
InnerException

Exception Geçerli özel duruma neden olan örneği alır.

(Devralındığı yer: Exception)
Message

Geçerli özel durumu açıklayan bir ileti alır.

(Devralındığı yer: Exception)
Source

Hataya neden olan uygulamanın veya nesnenin adını alır veya ayarlar.

(Devralındığı yer: Exception)
StackTrace

Çağrı yığınındaki anlık çerçevelerin dize gösterimini alır.

(Devralındığı yer: Exception)
TargetSite

Geçerli özel durumu oluşturan yöntemini alır.

(Devralındığı yer: Exception)

Yöntemler

Equals(Object)

Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler.

(Devralındığı yer: Object)
GetBaseException()

Türetilmiş bir sınıfta geçersiz kılındığında, sonraki bir veya daha fazla özel durumun kök nedeni olan değerini döndürür Exception .

(Devralındığı yer: Exception)
GetHashCode()

Varsayılan karma işlevi işlevi görür.

(Devralındığı yer: Object)
GetObjectData(SerializationInfo, StreamingContext)

Türetilmiş bir sınıfta geçersiz kılındığında, özel durum hakkındaki bilgilerle öğesini ayarlar SerializationInfo .

(Devralındığı yer: Exception)
GetType()

Geçerli örneğin çalışma zamanı türünü alır.

(Devralındığı yer: Exception)
MemberwiseClone()

Geçerli Objectöğesinin sığ bir kopyasını oluşturur.

(Devralındığı yer: Object)
ToString()

Geçerli özel durumun dize gösterimini oluşturur ve döndürür.

(Devralındığı yer: Exception)

Ekinlikler

SerializeObjectState
Kullanımdan kalktı.

Bir özel durum, özel durum hakkında serileştirilmiş veriler içeren bir özel durum nesnesi oluşturmak üzere seri hale getirildiğinde gerçekleşir.

(Devralındığı yer: Exception)

Şunlara uygulanır

Ayrıca bkz.