MissingSatelliteAssemblyException Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Wyjątek zgłaszany, gdy brakuje zestawu satelitarnego dla zasobów kultury domyślnej.
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
- Dziedziczenie
- Atrybuty
Przykłady
W poniższym przykładzie użyto atrybutu NeutralResourcesLanguageAttribute , aby wskazać, że angielski jest kulturą domyślną aplikacji i że jej zasoby są przechowywane w zestawie satelitarnym. Sam przykład zawiera zasoby w plikach .txt dla kultur angielskich i francuskich, zgodnie z opisem w poniższej tabeli:
Kultura | Nazwa/wartość zasobu | Nazwa pliku |
---|---|---|
Angielski | Greet=Hello | Greet.en.txt |
Francuski | Greet=Bonjour | Greet.fr.txt |
Poniższy kod źródłowy tworzy aplikację, która najpierw zmienia bieżącą kulturę interfejsu użytkownika na francuski (Francja), a następnie na Rosyjski (Rosja) i wyświetla odpowiedni zasób specyficzny dla kultury w obu przypadkach.
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
Aby skompilować i wykonać wersję przykładu w języku C#, możesz użyć następującego pliku wsadowego. Jeśli używasz języka Visual Basic, zastąp ciąg , a następnie zastąp csc
vbc
.cs
rozszerzenie ciągiem .vb
. Po wykonaniu przykładu wyświetla on ciąg języka francuskiego, ale zgłasza MissingSatelliteAssemblyException wyjątek, gdy bieżąca kultura jest rosyjska (Rosja). Wynika to z tego, że zestaw satelitarny en\HelloWorld.dll, który zawiera zasoby kultury domyślnej, nie istnieje.
vbc HelloWorld.vb
md fr
resgen Greet.fr.txt
al /out:fr\HelloWorld.resources.dll /culture:fr /embed:GreetResources.fr.resources
HelloWorld
Aby skompilować i wykonać wersję przykładu w języku Visual Basic, możesz użyć następującego pliku wsadowego. Jeśli używasz języka C#, zastąp ciąg , a następnie zastąp vbc
csc
.vb
rozszerzenie ciągiem .cs
. Po wykonaniu przykładu wyświetla on ciąg języka francuskiego, gdy bieżąca kultura interfejsu użytkownika to Francuski (Francja). Gdy bieżąca kultura interfejsu użytkownika to Rosja (Rosyjski), wyświetla ciąg języka angielskiego, ponieważ nie istnieją zasoby języka rosyjskiego, ale menedżer zasobów może załadować zasoby domyślnej kultury z zestawu satelitarnego 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
Kultura domyślna to kultura, której zasoby są ładowane, jeśli nie można odnaleźć odpowiednich zasobów specyficznych dla kultury. Domyślnie zasoby dla kultury domyślnej znajdują się w zestawie głównym, a MissingManifestResourceException obiekt jest zgłaszany, jeśli menedżer zasobów próbuje pobrać, ale nie może znaleźć zasobu dla kultury domyślnej. Jednak .NET Framework załaduje zasoby domyślnej kultury aplikacji z zestawu satelitarnego, jeśli NeutralResourcesLanguageAttribute atrybut określa wartość UltimateResourceFallbackLocation.Satellite parametru lokalizacji. W takim przypadku wyjątek jest zgłaszany, MissingSatelliteAssemblyException gdy menedżer zasobów próbuje pobrać zasób kultury domyślnej, a zestaw satelitarny dla kultury określonej w atrybucie NeutralResourcesLanguageAttribute nie istnieje. Należy pamiętać, że wyjątek jest zgłaszany przez metodę pobierania zasobów, taką jak ResourceManager.GetString lub ResourceManager.GetObject, a nie podczas ResourceManager tworzenia wystąpienia obiektu.
MissingSatelliteAssemblyException używa COR_E_MISSINGSATELLITEASSEMBLY HRESULT, która ma wartość 0x80131536.
MissingSatelliteAssemblyException używa domyślnej Equals implementacji, która obsługuje równość odwołań.
Aby uzyskać listę początkowych wartości właściwości dla wystąpienia MissingSatelliteAssemblyException klasy, zobacz MissingSatelliteAssemblyException konstruktory.
Uwaga
Zawsze należy użyć atrybutu NeutralResourcesLanguageAttribute , aby zdefiniować domyślną kulturę aplikacji, aby jeśli zasób dla określonej kultury jest niedostępny, aplikacja wyświetli akceptowalne zachowanie.
Konstruktory
MissingSatelliteAssemblyException() |
Inicjuje MissingSatelliteAssemblyException nowe wystąpienie klasy z domyślnymi właściwościami. |
MissingSatelliteAssemblyException(SerializationInfo, StreamingContext) |
Przestarzałe.
Inicjuje MissingSatelliteAssemblyException nowe wystąpienie klasy z serializowanych danych. |
MissingSatelliteAssemblyException(String) |
Inicjuje MissingSatelliteAssemblyException nowe wystąpienie klasy z określonym komunikatem o błędzie. |
MissingSatelliteAssemblyException(String, Exception) |
Inicjuje nowe wystąpienie MissingSatelliteAssemblyException klasy z określonym komunikatem o błędzie i odwołaniem do wyjątku wewnętrznego, który jest przyczyną tego wyjątku. |
MissingSatelliteAssemblyException(String, String) |
Inicjuje nowe wystąpienie MissingSatelliteAssemblyException klasy z określonym komunikatem o błędzie i nazwą kultury neutralnej. |
Właściwości
CultureName |
Pobiera nazwę kultury domyślnej. |
Data |
Pobiera kolekcję par klucz/wartość, które zapewniają dodatkowe informacje zdefiniowane przez użytkownika dotyczące wyjątku. (Odziedziczone po Exception) |
HelpLink |
Pobiera lub ustawia link do pliku pomocy skojarzonego z tym wyjątkiem. (Odziedziczone po Exception) |
HResult |
Pobiera lub ustawia HRESULT, zakodowaną wartość liczbową przypisaną do określonego wyjątku. (Odziedziczone po Exception) |
InnerException |
Exception Pobiera wystąpienie, które spowodowało bieżący wyjątek. (Odziedziczone po Exception) |
Message |
Pobiera komunikat opisujący bieżący wyjątek. (Odziedziczone po Exception) |
Source |
Pobiera lub ustawia nazwę aplikacji lub obiektu, który powoduje błąd. (Odziedziczone po Exception) |
StackTrace |
Pobiera reprezentację ciągu natychmiastowych ramek na stosie wywołań. (Odziedziczone po Exception) |
TargetSite |
Pobiera metodę, która zgłasza bieżący wyjątek. (Odziedziczone po Exception) |
Metody
Equals(Object) |
Określa, czy dany obiekt jest taki sam, jak bieżący obiekt. (Odziedziczone po Object) |
GetBaseException() |
Po przesłonięciu w klasie pochodnej funkcja zwraca Exception główną przyczynę co najmniej jednego kolejnego wyjątku. (Odziedziczone po Exception) |
GetHashCode() |
Służy jako domyślna funkcja skrótu. (Odziedziczone po Object) |
GetObjectData(SerializationInfo, StreamingContext) |
Przestarzałe.
Po zastąpieniu w klasie pochodnej ustawia SerializationInfo element z informacjami o wyjątku. (Odziedziczone po Exception) |
GetType() |
Pobiera typ środowiska uruchomieniowego bieżącego wystąpienia. (Odziedziczone po Exception) |
MemberwiseClone() |
Tworzy płytkią kopię bieżącego Objectelementu . (Odziedziczone po Object) |
ToString() |
Tworzy i zwraca reprezentację ciągu bieżącego wyjątku. (Odziedziczone po Exception) |
Zdarzenia
SerializeObjectState |
Przestarzałe.
Występuje, gdy wyjątek jest serializowany w celu utworzenia obiektu stanu wyjątku, który zawiera serializowane dane dotyczące wyjątku. (Odziedziczone po Exception) |