MissingSatelliteAssemblyException Třída

Definice

Výjimka, která se vyvolá, 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á atribut k označení, že angličtina NeutralResourcesLanguageAttribute je výchozí jazyková verze aplikace a že její prostředky jsou uloženy ve 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í vhodný prostředek specifický pro 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 jazyka C# příkladu můžete použít následující dávkový soubor. Pokud používáte Visual Basic, nahraďte csc příponou vbca nahraďte příponu .cs .vb. Při spuštění příkladu se zobrazí řetězec francouzského jazyka, ale vyvolá MissingSatelliteAssemblyException výjimku, když je aktuální jazyková verze ruština (Rusko). Důvodem je to, že satelitní sestavení en\HelloWorld.dll, 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  

Pomocí následujícího dávkového souboru můžete sestavit a spustit Visual Basic verzi příkladu. Pokud používáte C#, nahraďte vbc cscho a nahraďte ho .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 anglického jazyka, protože prostředky ruského jazyka neexistují, ale správce prostředků dokáž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 se načítají, pokud nelze najít příslušné prostředky specifické pro jazykovou verzi. Ve výchozím nastavení se prostředky výchozí jazykové verze nacházejí v hlavním sestavení a MissingManifestResourceException vyvolá se, pokud se správce prostředků pokusí načíst, ale nemůže najít prostředek pro výchozí jazykovou verzi. .NET Framework ale načte prostředky výchozí jazykové verze aplikace ze satelitního sestavení, pokud NeutralResourcesLanguageAttribute atribut určuje hodnotu UltimateResourceFallbackLocation.Satellite parametru umístění. 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 satelitní sestavení pro jazykovou verzi zadanou v atributu NeutralResourcesLanguageAttribute chybí. Všimněte si, že výjimka je vyvolána metodou načítání prostředků, například ResourceManager.GetString nebo ResourceManager.GetObject, a ne, když ResourceManager je objekt vytvoření instance.

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 najdete v MissingSatelliteAssemblyException konstruktorech.

Poznámka

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

Konstruktory

MissingSatelliteAssemblyException()

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

MissingSatelliteAssemblyException(SerializationInfo, StreamingContext)

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

MissingSatelliteAssemblyException(String)

Inicializuje novou instanci třídy se zadanou chybovou MissingSatelliteAssemblyException 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 přiřazenou 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ězcové znázornění 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 hlavní příčinou jedné nebo více následných výjimek.

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

Slouží jako výchozí funkce hash.

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

Při přepsání v odvozené třídě nastaví s SerializationInfo 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ří použádnou kopii aktuálního souboru Object.

(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é