MissingSatelliteAssemblyException Třída

Definice

Výjimka, která je vyvolán, když chybí satelitní sestavení pro prostředky výchozí jazykové verze.

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
Dědičnost
MissingSatelliteAssemblyException
Atributy

Příklady

Následující příklad používá NeutralResourcesLanguageAttribute atribut k označení, že angličtina je výchozí jazyková verze aplikace a že její prostředky jsou uloženy v satelitním sestavení. Samotný příklad obsahuje prostředky v souborech .txt pro anglické a francouzské jazykové verze, jak je popsáno v následující tabulce:

Kultura Název nebo hodnota prostředku Název souboru
Angličtina Greet=Hello Greet.en.txt
Francouzština Greet=Bonjour Greet.fr.txt

Následující zdrojový kód vytvoří aplikaci, která změní aktuální jazykovou verzi uživatelského rozhraní nejprve na francouzštinu (Francie) a pak na ruštinu (Rusko) a v obou případech zobrazí odpovídající prostředek pro konkrétní jazykovou verzi.

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

K sestavení a spuštění verze příkladu v jazyce C# můžete použít následující dávkový soubor. Pokud používáte Visual Basic, nahraďte csc za vbca nahraďte rozšíření za .cs.vb. Při spuštění příkladu se zobrazí řetězec francouzského jazyka, ale vyvolá MissingSatelliteAssemblyException výjimku, pokud je aktuální jazyková verze ruština (Rusko). Důvodem je to, že en\HelloWorld.dll satelitního sestavení, které obsahuje prostředky výchozí jazykové verze, neexistuje.

vbc HelloWorld.vb  

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

HelloWorld  

K sestavení a spuštění verze visual basicu příkladu můžete použít následující dávkový soubor. Pokud používáte jazyk C#, nahraďte vbc za csca nahraďte rozšíření za .vb.cs. Při spuštění příkladu se zobrazí řetězec francouzského jazyka, pokud je aktuální jazyková verze uživatelského rozhraní francouzština (Francie). Pokud je aktuální jazyková verze uživatelského rozhraní Rusko (ruština), zobrazí se řetězec v angličtině, protože prostředky ruského jazyka neexistují, ale správce prostředků může načíst prostředky výchozí jazykové verze ze satelitního sestavení 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  

Poznámky

Výchozí jazyková verze je jazyková verze, jejíž prostředky jsou načteny, pokud nelze najít odpovídající prostředky specifické pro jazykovou verzi. Ve výchozím nastavení jsou prostředky pro výchozí jazykovou verzi umístěny v hlavním sestavení a MissingManifestResourceException vyvolá se v případě, že se správce prostředků pokusí načíst, ale nemůže najít prostředek pro výchozí jazykovou verzi. Rozhraní .NET Framework však načte prostředky pro výchozí jazykovou verzi aplikace ze satelitního sestavení, pokud NeutralResourcesLanguageAttribute atribut určuje hodnotu UltimateResourceFallbackLocation.Satellite parametru location. V takovém případě dojde k výjimce MissingSatelliteAssemblyException , když se správce prostředků pokusí načíst prostředek výchozí jazykové verze a chybí satelitní sestavení pro jazykovou verzi zadanou v atributu NeutralResourcesLanguageAttribute . Všimněte si, že výjimka je vyvolána metodou načítání prostředků, jako ResourceManager.GetString je nebo ResourceManager.GetObject, a ne při vytvoření instance objektu ResourceManager .

MissingSatelliteAssemblyException používá COR_E_MISSINGSATELLITEASSEMBLY HRESULT, který má hodnotu 0x80131536.

MissingSatelliteAssemblyException používá výchozí Equals implementaci, která podporuje rovnost odkazů.

Seznam počátečních hodnot vlastností pro instanci MissingSatelliteAssemblyException třídy naleznete v MissingSatelliteAssemblyException konstruktorech.

Poznámka

Atribut byste měli vždy použít NeutralResourcesLanguageAttribute k definování výchozí jazykové verze vaší aplikace, aby v případě nedostupnosti prostředku pro konkrétní jazykovou verzi aplikace zobrazilo přijatelné chování.

Konstruktory

MissingSatelliteAssemblyException()

Inicializuje novou instanci třídy s výchozími MissingSatelliteAssemblyException vlastnostmi.

MissingSatelliteAssemblyException(SerializationInfo, StreamingContext)
Zastaralé.

Inicializuje novou instanci MissingSatelliteAssemblyException třídy ze serializovaných dat.

MissingSatelliteAssemblyException(String)

Inicializuje novou instanci MissingSatelliteAssemblyException třídy se zadanou chybovou zprávou.

MissingSatelliteAssemblyException(String, Exception)

Inicializuje novou instanci MissingSatelliteAssemblyException třídy se zadanou chybovou zprávou a odkazem na vnitřní výjimku, která je příčinou této výjimky.

MissingSatelliteAssemblyException(String, String)

Inicializuje novou instanci MissingSatelliteAssemblyException třídy se zadanou chybovou zprávou a názvem neutrální jazykové verze.

Vlastnosti

CultureName

Získá název výchozí jazykové verze.

Data

Získá kolekci párů klíč/hodnota, které poskytují další uživatelem definované informace o výjimce.

(Zděděno od Exception)
HelpLink

Získá nebo nastaví odkaz na soubor nápovědy přidružené k této výjimce.

(Zděděno od Exception)
HResult

Získá nebo nastaví HRESULT, kódovanou číselnou hodnotu, která je přiřazena ke konkrétní výjimce.

(Zděděno od Exception)
InnerException

Exception Získá instanci, která způsobila aktuální výjimku.

(Zděděno od Exception)
Message

Získá zprávu, která popisuje aktuální výjimku.

(Zděděno od Exception)
Source

Získá nebo nastaví název aplikace nebo objektu, který způsobuje chybu.

(Zděděno od Exception)
StackTrace

Získá řetězcovou reprezentaci okamžitých rámců v zásobníku volání.

(Zděděno od Exception)
TargetSite

Získá metodu, která vyvolá aktuální výjimku.

(Zděděno od Exception)

Metody

Equals(Object)

Určí, zda se zadaný objekt rovná aktuálnímu objektu.

(Zděděno od Object)
GetBaseException()

Při přepsání v odvozené třídě vrátí Exception hodnotu, která je původní příčinou jedné nebo více následných výjimek.

(Zděděno od Exception)
GetHashCode()

Slouží jako výchozí hashovací funkce.

(Zděděno od Object)
GetObjectData(SerializationInfo, StreamingContext)
Zastaralé.

Při přepsání v odvozené třídě nastaví SerializationInfo s informacemi o výjimce.

(Zděděno od Exception)
GetType()

Získá typ modulu runtime aktuální instance.

(Zděděno od Exception)
MemberwiseClone()

Vytvoří mělkou kopii aktuálního Objectsouboru .

(Zděděno od Object)
ToString()

Vytvoří a vrátí řetězcovou reprezentaci aktuální výjimky.

(Zděděno od Exception)

Událost

SerializeObjectState
Zastaralé.

Nastane, když je výjimka serializována k vytvoření objektu stavu výjimky, který obsahuje serializovaná data o výjimce.

(Zděděno od Exception)

Platí pro

Viz také