MissingSatelliteAssemblyException Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Exception levée lorsque l'assembly satellite des ressources de la culture par défaut est absent.
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
- Héritage
- Attributs
Exemples
L’exemple suivant utilise l’attribut NeutralResourcesLanguageAttribute pour indiquer que l’anglais est la culture par défaut de l’application et que ses ressources sont stockées dans un assembly satellite. L’exemple lui-même inclut des ressources dans .txt fichiers pour les cultures anglaise et Français, comme décrit dans le tableau suivant :
Culture | Nom/valeur de la ressource | Nom de fichier |
---|---|---|
Anglais | Greet=Hello | Greet.en.txt |
Français | Greet=Bonjour | Greet.fr.txt |
Le code source suivant génère une application qui modifie d’abord la culture de l’interface utilisateur actuelle en Français (France), puis en russe (Russie) et affiche une ressource appropriée spécifique à la culture dans les deux cas.
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
Vous pouvez utiliser le fichier batch suivant pour générer et exécuter la version C# de l’exemple. Si vous utilisez Visual Basic, remplacez csc
par vbc
et modifiez l’extension .cs
en .vb
. Lorsque l’exemple est exécuté, il affiche une chaîne de langue Français, mais lève une MissingSatelliteAssemblyException exception lorsque la culture actuelle est russe (Russie). En effet, l’assembly satellite en\HelloWorld.dll qui contient les ressources de la culture par défaut n’existe pas.
vbc HelloWorld.vb
md fr
resgen Greet.fr.txt
al /out:fr\HelloWorld.resources.dll /culture:fr /embed:GreetResources.fr.resources
HelloWorld
Vous pouvez utiliser le fichier de commandes suivant pour générer et exécuter la version Visual Basic de l’exemple. Si vous utilisez C#, remplacez par vbc
csc
et remplacez l’extension .vb
par .cs
. Lorsque l’exemple est exécuté, il affiche une chaîne de langue Français lorsque la culture d’interface utilisateur actuelle est Français (France). Lorsque la culture actuelle de l’interface utilisateur est russie (russe), elle affiche une chaîne de langue anglaise, car les ressources en russe n’existent pas, mais le gestionnaire de ressources est en mesure de charger les ressources de la culture par défaut à partir de l’assembly satellite 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
Remarques
La culture par défaut est la culture dont les ressources sont chargées si les ressources appropriées spécifiques à la culture sont introuvables. Par défaut, les ressources de la culture par défaut se trouvent dans l’assembly main et un MissingManifestResourceException est levée si le gestionnaire de ressources tente de récupérer mais ne trouve pas de ressource pour la culture par défaut. Toutefois, le .NET Framework charge les ressources de la culture par défaut d’une application à partir d’un assembly satellite si l’attribut NeutralResourcesLanguageAttribute spécifie une valeur de pour le paramètre d’emplacement UltimateResourceFallbackLocation.Satellite . Dans ce cas, l’exception MissingSatelliteAssemblyException est levée lorsque le gestionnaire de ressources tente de récupérer une ressource de la culture par défaut et que l’assembly satellite pour la culture spécifiée dans l’attribut NeutralResourcesLanguageAttribute est manquant. Notez que l’exception est levée par une méthode de récupération de ressources telle que ResourceManager.GetString ou ResourceManager.GetObject, et non lorsque l’objet ResourceManager est instancié.
MissingSatelliteAssemblyException utilise le COR_E_MISSINGSATELLITEASSEMBLY HRESULT, qui a la valeur 0x80131536.
MissingSatelliteAssemblyException utilise l’implémentation par défaut Equals , qui prend en charge l’égalité des références.
Pour obtenir la liste des valeurs de propriété initiales d’un instance de la MissingSatelliteAssemblyException classe, consultez les MissingSatelliteAssemblyException constructeurs.
Notes
Vous devez toujours utiliser l’attribut pour définir la NeutralResourcesLanguageAttribute culture par défaut de votre application afin que si une ressource pour une culture spécifique n’est pas disponible, votre application affiche un comportement acceptable.
Constructeurs
MissingSatelliteAssemblyException() |
Initialise une nouvelle instance de la classe MissingSatelliteAssemblyException avec des propriétés par défaut. |
MissingSatelliteAssemblyException(SerializationInfo, StreamingContext) |
Obsolète.
Initialise une nouvelle instance de la classe MissingSatelliteAssemblyException à partir de données sérialisées. |
MissingSatelliteAssemblyException(String) |
Initialise une nouvelle instance de la classe MissingSatelliteAssemblyException avec le message d'erreur spécifié. |
MissingSatelliteAssemblyException(String, Exception) |
Initialise une nouvelle instance de la classe MissingSatelliteAssemblyException avec un message d'erreur spécifié et une référence à l'exception interne ayant provoqué cette exception. |
MissingSatelliteAssemblyException(String, String) |
Initialise une nouvelle instance de la classe MissingSatelliteAssemblyException avec un message d'erreur et le nom d'une culture neutre spécifiés. |
Propriétés
CultureName |
Obtient le nom de la culture par défaut. |
Data |
Obtient une collection de paires clé/valeur qui fournissent des informations définies par l'utilisateur supplémentaires sur l'exception. (Hérité de Exception) |
HelpLink |
Obtient ou définit un lien vers le fichier d'aide associé à cette exception. (Hérité de Exception) |
HResult |
Obtient ou définit HRESULT, valeur numérique codée qui est assignée à une exception spécifique. (Hérité de Exception) |
InnerException |
Obtient l'instance Exception qui a provoqué l'exception actuelle. (Hérité de Exception) |
Message |
Obtient un message qui décrit l'exception active. (Hérité de Exception) |
Source |
Obtient ou définit le nom de l'application ou de l'objet qui est à l'origine de l'erreur. (Hérité de Exception) |
StackTrace |
Obtient une représentation sous forme de chaîne des frames immédiats sur la pile des appels. (Hérité de Exception) |
TargetSite |
Obtient la méthode qui lève l'exception actuelle. (Hérité de Exception) |
Méthodes
Equals(Object) |
Détermine si l'objet spécifié est égal à l'objet actuel. (Hérité de Object) |
GetBaseException() |
En cas de substitution dans une classe dérivée, retourne la Exception qui est à l'origine d'une ou de plusieurs exceptions ultérieures. (Hérité de Exception) |
GetHashCode() |
Fait office de fonction de hachage par défaut. (Hérité de Object) |
GetObjectData(SerializationInfo, StreamingContext) |
Obsolète.
En cas de substitution dans une classe dérivée, définit SerializationInfo avec des informations sur l'exception. (Hérité de Exception) |
GetType() |
Obtient le type au moment de l'exécution de l'instance actuelle. (Hérité de Exception) |
MemberwiseClone() |
Crée une copie superficielle du Object actuel. (Hérité de Object) |
ToString() |
Crée et retourne une chaîne représentant l'exception actuelle. (Hérité de Exception) |
Événements
SerializeObjectState |
Obsolète.
Se produit quand une exception est sérialisée pour créer un objet d'état d'exception qui contient des données sérialisées concernant l'exception. (Hérité de Exception) |