MissingSatelliteAssemblyException Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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
- 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 vbc
a 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 csc
a 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) |