MissingSatelliteAssemblyException Klasa

Definicja

Wyjątek, który jest zgłaszany, gdy brakuje zestawu satelickiego dla zasobów kultury domyślnej.The exception that is thrown when the satellite assembly for the resources of the default culture is missing.

public ref class MissingSatelliteAssemblyException : SystemException
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public class MissingSatelliteAssemblyException : SystemException
type MissingSatelliteAssemblyException = class
    inherit SystemException
Public Class MissingSatelliteAssemblyException
Inherits SystemException
Dziedziczenie
MissingSatelliteAssemblyException
Atrybuty

Przykłady

W poniższym przykładzie użyto NeutralResourcesLanguageAttribute atrybutu, aby wskazać, że język angielski jest domyślną kulturą aplikacji i że jego zasobów są przechowywane w zestawie satelickim.The following example uses the NeutralResourcesLanguageAttribute attribute to indicate that English is the app's default culture and that its resources are stored in a satellite assembly. Przykład sam zawiera zasoby w plikach .txt dla języków angielskiego i francuskiego, zgodnie z opisem w poniższej tabeli:The example itself includes resources in .txt files for the English and French cultures, as described in the following table:

KulturaCulture Wartość nazwy zasobówResource name/value Nazwa plikuFile name
AngielskiEnglish Greet=HelloGreet=Hello Greet.en.txtGreet.en.txt
FrancuskiFrench Greet=BonjourGreet=Bonjour Greet.fr.txtGreet.fr.txt

Poniższy kod źródłowy tworzy aplikację, która najpierw zmiany bieżącej kultury interfejsu użytkownika, francuski (Francja), a następnie rosyjski (Rosja) i wyświetla odpowiedni zasób specyficzny dla kultury w obu przypadkach.The following source code builds an app that changes the current UI culture first to French (France) and then to Russian (Russia) and displays an appropriate culture-specific resource in both cases.

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

Następujący plik wsadowy umożliwia tworzenie i wykonywanie wersja języka C# przykładu.You can use the following batch file to build and execute the C# version of the example. Jeśli używasz języka Visual Basic, należy zastąpić csc z vbci Zastąp .cs rozszerzenie .vb.If you're using Visual Basic, replace csc with vbc, and replace the .cs extension with .vb. Po wykonaniu przykład wyświetla ciąg języka francuskiego, ale zgłasza MissingSatelliteAssemblyException wyjątku, gdy bieżącą kulturą jest rosyjski (Rosja).When the example is executed, it displays a French language string but throws a MissingSatelliteAssemblyException exception when the current culture is Russian (Russia). Jest to spowodowane en\HelloWorld.dll zestawów satelickich, zawierająca zasoby kultury domyślnej nie istnieje.This is because the satellite assembly en\HelloWorld.dll that contains the resources of the default culture does not exist.

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

Następujący plik wsadowy umożliwia tworzenie i wykonywanie wersja języka Visual Basic przykładu.You can use the following batch file to build and execute the Visual Basic version of the example. Jeśli używasz języka C#, należy zastąpić vbc z csci Zastąp .vb rozszerzenie .cs.If you're using C#, replace vbc with csc, and replace the .vb extension with .cs. Po wykonaniu przykład wyświetla ciąg języka francuskiego bieżącej kultury interfejsu użytkownika po francuski (Francja).When the example is executed, it displays a French language string when the current UI culture is French (France). Bieżąca kultura interfejsu użytkownika po Rosja (rosyjski) on wyświetlony ciąg języka angielskiego, ponieważ zasoby języka rosyjskiego nie istnieją, ale Menedżera zasobów jest w stanie załadować zasoby domyślną kulturę używaną z en\HelloWorld2.dll zestawu satelickiego.When the current UI culture is Russia (Russian), it displays an English language string because Russian language resources do not exist, but the resource manager is able to load the resources of the default culture from the satellite assembly en\HelloWorld2.dll.

  
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  
  

Uwagi

Domyślnej kultury jest kultury, którego zasoby są ładowane, jeśli nie można znaleźć odpowiednie zasoby specyficzne dla kultury.The default culture is the culture whose resources are loaded if the appropriate culture-specific resources cannot be found. Domyślnie zasobów dla kultury domyślnej znajdują się w głównym zestawie i MissingManifestResourceException jest generowany, jeśli usługi resource manager podejmie próbę pobrania, ale nie można odnaleźć zasobu dla kultury domyślnej.By default, resources for the default culture are located in the main assembly, and a MissingManifestResourceException is thrown if the resource manager tries to retrieve but cannot find a resource for the default culture. Jednak .NET Framework załaduje zasobów dla kultury domyślnej aplikacji z zestawem satelickim Jeśli NeutralResourcesLanguageAttribute atrybut ma wartość UltimateResourceFallbackLocation.Satellite parametru lokalizacji.However, the .NET Framework will load the resources for an app's default culture from a satellite assembly if the NeutralResourcesLanguageAttribute attribute specifies a value of UltimateResourceFallbackLocation.Satellite for the location parameter. W przypadku, MissingSatelliteAssemblyException wyjątek jest zgłaszany, gdy usługi resource manager podejmie próbę pobrania zasobów kultury domyślnej i zestawu satelickiego dla kultury określonej w NeutralResourcesLanguageAttribute brakuje atrybutu.When this is the case, the MissingSatelliteAssemblyException exception is thrown when the resource manager tries to retrieve a resource of the default culture and the satellite assembly for the culture specified in the NeutralResourcesLanguageAttribute attribute is missing. Należy zauważyć, że wyjątek jest zgłaszany przez metodę pobierania zasobów, takich jak ResourceManager.GetString lub ResourceManager.GetObject, a nie w momencie ResourceManager jest tworzone wystąpienie obiektu.Note that the exception is thrown by a resource retrieval method such as ResourceManager.GetString or ResourceManager.GetObject, and not when the ResourceManager object is instantiated.

MissingSatelliteAssemblyException używa COR_E_MISSINGSATELLITEASSEMBLY HRESULT, która ma wartość 0x80131536.MissingSatelliteAssemblyException uses the HRESULT COR_E_MISSINGSATELLITEASSEMBLY, which has the value 0x80131536.

MissingSatelliteAssemblyException używa domyślnej Equals implementację, która obsługuje równości odwołań.MissingSatelliteAssemblyException uses the default Equals implementation, which supports reference equality.

Aby uzyskać listę początkowe wartości właściwości wystąpienia MissingSatelliteAssemblyException klasy, zobacz MissingSatelliteAssemblyException konstruktorów.For a list of initial property values for an instance of the MissingSatelliteAssemblyException class, see the MissingSatelliteAssemblyException constructors.

Uwaga

Należy zawsze używać NeutralResourcesLanguageAttribute atrybut do definiowania aplikacji domyślnej kultury, dzięki czemu w przypadku zasobów dla określonej kultury jest niedostępny, aplikacja wyświetli zachowania akceptowalnego.You should always use the NeutralResourcesLanguageAttribute attribute to define your app's default culture so that if a resource for a specific culture is unavailable, your application will display acceptable behavior.

Konstruktory

MissingSatelliteAssemblyException()

Inicjuje nowe wystąpienie klasy MissingSatelliteAssemblyException klasy przy użyciu domyślnej właściwości.Initializes a new instance of the MissingSatelliteAssemblyException class with default properties.

MissingSatelliteAssemblyException(SerializationInfo, StreamingContext)

Inicjuje nowe wystąpienie klasy MissingSatelliteAssemblyException klasy z serializowanych danych.Initializes a new instance of the MissingSatelliteAssemblyException class from serialized data.

MissingSatelliteAssemblyException(String)

Inicjuje nowe wystąpienie klasy MissingSatelliteAssemblyException klasy przy użyciu określonego komunikatu o błędzie.Initializes a new instance of the MissingSatelliteAssemblyException class with the specified error message.

MissingSatelliteAssemblyException(String, Exception)

Inicjuje nowe wystąpienie klasy MissingSatelliteAssemblyException klasy przy użyciu określonego komunikatu o błędzie i odwołania do wewnętrznego wyjątku, który jest przyczyną tego wyjątku.Initializes a new instance of the MissingSatelliteAssemblyException class with a specified error message and a reference to the inner exception that is the cause of this exception.

MissingSatelliteAssemblyException(String, String)

Inicjuje nowe wystąpienie klasy MissingSatelliteAssemblyException klasy przy użyciu określonego komunikatu o błędzie i nazwę kultury neutralnej.Initializes a new instance of the MissingSatelliteAssemblyException class with a specified error message and the name of a neutral culture.

Właściwości

CultureName

Pobiera nazwę kultury domyślnej.Gets the name of the default culture.

Data

Pobiera kolekcję par klucz/wartość, które zawierają dodatkowe informacje zdefiniowane przez użytkownika dotyczące wyjątku.Gets a collection of key/value pairs that provide additional user-defined information about the exception.

(Odziedziczone po Exception)
HelpLink

Pobiera lub ustawia link do pliku pomocy skojarzonego z tym wyjątkiem.Gets or sets a link to the help file associated with this exception.

(Odziedziczone po Exception)
HResult

Pobiera lub ustawia wartość HRESULT, kodowane wartości liczbowe przypisane do określonego wyjątku.Gets or sets HRESULT, a coded numerical value that is assigned to a specific exception.

(Odziedziczone po Exception)
InnerException

Pobiera wystąpienie Exception, które spowodowało wyjątek bieżący.Gets the Exception instance that caused the current exception.

(Odziedziczone po Exception)
Message

Pobiera komunikat, który opisuje bieżący wyjątek.Gets a message that describes the current exception.

(Odziedziczone po Exception)
Source

Pobiera lub ustawia nazwę aplikacji lub obiekt, który powoduje błąd.Gets or sets the name of the application or the object that causes the error.

(Odziedziczone po Exception)
StackTrace

Pobiera ciąg reprezentujący bezpośrednie ramki w stosie wywołań.Gets a string representation of the immediate frames on the call stack.

(Odziedziczone po Exception)
TargetSite

Pobiera metodę, która zgłasza bieżący wyjątek.Gets the method that throws the current exception.

(Odziedziczone po Exception)

Metody

Equals(Object)

Określa, czy określony obiekt jest równy bieżącemu obiektowi.Determines whether the specified object is equal to the current object.

(Odziedziczone po Object)
GetBaseException()

Gdy jest zastępowany w klasie pochodnej, zwraca Exception, który jest główną przyczyną jednego lub kilku kolejnych wyjątków.When overridden in a derived class, returns the Exception that is the root cause of one or more subsequent exceptions.

(Odziedziczone po Exception)
GetHashCode()

Służy jako domyślna funkcja skrótu.Serves as the default hash function.

(Odziedziczone po Object)
GetObjectData(SerializationInfo, StreamingContext)

Gdy jest zastępowany w klasie pochodnej, ustawia SerializationInfo z informacjami o wyjątku.When overridden in a derived class, sets the SerializationInfo with information about the exception.

(Odziedziczone po Exception)
GetType()

Pobiera typ środowiska uruchomieniowego bieżącego wystąpienia.Gets the runtime type of the current instance.

(Odziedziczone po Exception)
MemberwiseClone()

Tworzy skróconą kopię bieżącego Object.Creates a shallow copy of the current Object.

(Odziedziczone po Object)
ToString()

Tworzy i zwraca reprezentację ciągu bieżącego wyjątku.Creates and returns a string representation of the current exception.

(Odziedziczone po Exception)

Zdarzenia

SerializeObjectState

Występuje, gdy wyjątek jest serializowany w celu utworzenia obiektu stanu wyjątku, który zawiera serializowane dane dotyczące wyjątku.Occurs when an exception is serialized to create an exception state object that contains serialized data about the exception.

(Odziedziczone po Exception)

Dotyczy

Zobacz też