MissingSatelliteAssemblyException Klas
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
De uitzondering die wordt gegenereerd wanneer de satellietassemblage voor de bronnen van de standaardcultuur ontbreekt.
public ref class MissingSatelliteAssemblyException : SystemException
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public class MissingSatelliteAssemblyException : SystemException
public class MissingSatelliteAssemblyException : SystemException
[<System.Runtime.InteropServices.ComVisible(true)>]
[<System.Serializable>]
type MissingSatelliteAssemblyException = class
inherit SystemException
type MissingSatelliteAssemblyException = class
inherit SystemException
Public Class MissingSatelliteAssemblyException
Inherits SystemException
- Overname
- Kenmerken
Voorbeelden
In het volgende voorbeeld wordt het NeutralResourcesLanguageAttribute kenmerk gebruikt om aan te geven dat Engels de standaardcultuur van de app is en dat de bijbehorende resources worden opgeslagen in een satellietassembly. Het voorbeeld zelf bevat resources in .txt bestanden voor de Engelse en Franse culturen, zoals beschreven in de volgende tabel:
| Cultuur | Resourcenaam/-waarde | Bestandsnaam |
|---|---|---|
| Engels | Begroeting=Hallo | Greet.en.txt |
| Frans | Greet=Bonjour | Greet.fr.txt |
Met de volgende broncode wordt een app gebouwd die de huidige UI-cultuur eerst wijzigt in Frans (Frankrijk) en vervolgens in Russisch (Rusland) en in beide gevallen een geschikte cultuurspecifieke resource weergeeft.
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
U kunt het volgende batchbestand gebruiken om de C#-versie van het voorbeeld te bouwen en uit te voeren. Als u Visual Basic gebruikt, vervangt u csc door vbcen vervangt u de .cs-extensie door .vb. Wanneer het voorbeeld wordt uitgevoerd, wordt er een Franse tekenreeks weergegeven, maar wordt een MissingSatelliteAssemblyException uitzondering gegenereerd wanneer de huidige cultuur Russisch (Rusland) is. Dit komt doordat de satellietassembly en\HelloWorld.dll die de bronnen van de standaardcultuur bevat, niet bestaat.
vbc HelloWorld.vb
md fr
resgen Greet.fr.txt
al /out:fr\HelloWorld.resources.dll /culture:fr /embed:GreetResources.fr.resources
HelloWorld
U kunt het volgende batchbestand gebruiken om de Visual Basic-versie van het voorbeeld te bouwen en uit te voeren. Als u C# gebruikt, vervangt u vbc door cscen vervangt u de .vb-extensie door .cs. Wanneer het voorbeeld wordt uitgevoerd, wordt er een Franse taaltekenreeks weergegeven wanneer de huidige UI-cultuur Frans (Frankrijk) is. Wanneer de huidige UI-cultuur Rusland (Russisch) is, wordt er een Engelse tekenreeks weergegeven omdat Russische taalbronnen niet bestaan, maar de resourcemanager kan de resources van de standaardcultuur laden vanuit de satellietassembly 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
Opmerkingen
De standaardcultuur is de cultuur waarvan de resources worden geladen als de juiste cultuurspecifieke resources niet kunnen worden gevonden. Resources voor de standaardcultuur bevinden zich standaard in de hoofdassembly en er wordt een MissingManifestResourceException gegenereerd als de resourcemanager probeert op te halen, maar geen resource voor de standaardcultuur kan vinden. Het .NET Framework laadt echter de resources voor de standaardcultuur van een app vanuit een satellietassembly als het kenmerk NeutralResourcesLanguageAttribute een waarde van UltimateResourceFallbackLocation.Satellite voor de locatieparameter opgeeft. Als dit het geval is, wordt de MissingSatelliteAssemblyException uitzondering gegenereerd wanneer de resourcemanager probeert een resource van de standaardcultuur op te halen en de satellietassembly voor de cultuur die is opgegeven in het NeutralResourcesLanguageAttribute kenmerk ontbreekt. Houd er rekening mee dat de uitzondering wordt gegenereerd door een methode voor het ophalen van resources, zoals ResourceManager.GetString of ResourceManager.GetObject, en niet wanneer het ResourceManager object wordt geïnstantieerd.
MissingSatelliteAssemblyException maakt gebruik van de HRESULT-COR_E_MISSINGSATELLITEASSEMBLY, met de waarde 0x80131536.
MissingSatelliteAssemblyException maakt gebruik van de standaard-Equals-implementatie, die ondersteuning biedt voor gelijkheid van verwijzingen.
Zie de MissingSatelliteAssemblyException constructors voor een lijst met initiële eigenschapswaarden voor een exemplaar van de MissingSatelliteAssemblyException klasse.
Note
U moet altijd het kenmerk gebruiken om de NeutralResourcesLanguageAttribute standaardcultuur van uw app te definiëren, zodat als een resource voor een specifieke cultuur niet beschikbaar is, uw toepassing acceptabel gedrag weergeeft.
Constructors
| Name | Description |
|---|---|
| MissingSatelliteAssemblyException() |
Initialiseert een nieuw exemplaar van de MissingSatelliteAssemblyException klasse met standaardeigenschappen. |
| MissingSatelliteAssemblyException(SerializationInfo, StreamingContext) |
Initialiseert een nieuw exemplaar van de MissingSatelliteAssemblyException klasse op basis van geserialiseerde gegevens. |
| MissingSatelliteAssemblyException(String, Exception) |
Initialiseert een nieuw exemplaar van de MissingSatelliteAssemblyException klasse met een opgegeven foutbericht en een verwijzing naar de binnenste uitzondering die de oorzaak van deze uitzondering is. |
| MissingSatelliteAssemblyException(String, String) |
Initialiseert een nieuw exemplaar van de MissingSatelliteAssemblyException klasse met een opgegeven foutbericht en de naam van een neutrale cultuur. |
| MissingSatelliteAssemblyException(String) |
Initialiseert een nieuw exemplaar van de MissingSatelliteAssemblyException klasse met het opgegeven foutbericht. |
Eigenschappen
| Name | Description |
|---|---|
| CultureName |
Hiermee haalt u de naam van de standaardcultuur op. |
| Data |
Hiermee haalt u een verzameling sleutel-waardeparen op die aanvullende door de gebruiker gedefinieerde informatie over de uitzondering bieden. (Overgenomen van Exception) |
| HelpLink |
Hiermee haalt u een koppeling op naar het Help-bestand dat aan deze uitzondering is gekoppeld. (Overgenomen van Exception) |
| HResult |
Hiermee wordt HRESULT opgehaald of ingesteld, een gecodeerde numerieke waarde die is toegewezen aan een specifieke uitzondering. (Overgenomen van Exception) |
| InnerException |
Hiermee haalt u het Exception exemplaar op dat de huidige uitzondering heeft veroorzaakt. (Overgenomen van Exception) |
| Message |
Hiermee wordt een bericht weergegeven waarin de huidige uitzondering wordt beschreven. (Overgenomen van Exception) |
| Source |
Hiermee wordt de naam van de toepassing of het object dat de fout veroorzaakt, opgehaald of ingesteld. (Overgenomen van Exception) |
| StackTrace |
Hiermee haalt u een tekenreeksweergave van de directe frames op de aanroepstack op. (Overgenomen van Exception) |
| TargetSite |
Hiermee haalt u de methode op waarmee de huidige uitzondering wordt gegenereerd. (Overgenomen van Exception) |
Methoden
| Name | Description |
|---|---|
| Equals(Object) |
Bepaalt of het opgegeven object gelijk is aan het huidige object. (Overgenomen van Object) |
| GetBaseException() |
Wanneer deze wordt overschreven in een afgeleide klasse, retourneert u de Exception hoofdoorzaak van een of meer volgende uitzonderingen. (Overgenomen van Exception) |
| GetHashCode() |
Fungeert als de standaardhashfunctie. (Overgenomen van Object) |
| GetObjectData(SerializationInfo, StreamingContext) |
Wanneer deze wordt overschreven in een afgeleide klasse, stelt u de SerializationInfo met informatie over de uitzondering in. (Overgenomen van Exception) |
| GetType() |
Hiermee haalt u het runtimetype van het huidige exemplaar op. (Overgenomen van Exception) |
| MemberwiseClone() |
Hiermee maakt u een ondiepe kopie van de huidige Object. (Overgenomen van Object) |
| ToString() |
Hiermee maakt en retourneert u een tekenreeksweergave van de huidige uitzondering. (Overgenomen van Exception) |
gebeurtenis
| Name | Description |
|---|---|
| SerializeObjectState |
Treedt op wanneer een uitzondering wordt geserialiseerd om een uitzonderingsstatusobject te maken dat geserialiseerde gegevens over de uitzondering bevat. (Overgenomen van Exception) |