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 pour les ressources de la culture par défaut est manquant.
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
- 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 anglaises et françaises, 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 actuelle de l’interface utilisateur en Français (France), puis en Russe (Russie) et affiche une ressource propre à la culture appropriée 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 cscvbcpar , puis remplacez l’extension .cs par .vb. Lorsque l’exemple est exécuté, il affiche une chaîne de langue française, mais lève une MissingSatelliteAssemblyException exception lorsque la culture actuelle est russe (Russie). Cela est dû au fait que 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 vbccscpar , puis remplacez l’extension .vb par .cs. Lorsque l’exemple est exécuté, il affiche une chaîne de langue française lorsque la culture actuelle de l’interface utilisateur est française (France). Lorsque la culture actuelle de l’interface utilisateur est la Russie (russe), elle affiche une chaîne de langue anglaise, car les ressources de langue russe n’existent pas, mais le gestionnaire de ressources peut 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 principal et une MissingManifestResourceException exception 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, .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 UltimateResourceFallbackLocation.Satellite pour le paramètre d'emplacement. Lorsque c’est le 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’une instance de la MissingSatelliteAssemblyException classe, consultez les MissingSatelliteAssemblyException constructeurs.
Note
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
| Nom | Description |
|---|---|
| MissingSatelliteAssemblyException() |
Initialise une nouvelle instance de la MissingSatelliteAssemblyException classe avec des propriétés par défaut. |
| MissingSatelliteAssemblyException(SerializationInfo, StreamingContext) |
Initialise une nouvelle instance de la MissingSatelliteAssemblyException classe à partir de données sérialisées. |
| MissingSatelliteAssemblyException(String, Exception) |
Initialise une nouvelle instance de la MissingSatelliteAssemblyException classe avec un message d’erreur spécifié et une référence à l’exception interne qui est la cause de cette exception. |
| MissingSatelliteAssemblyException(String, String) |
Initialise une nouvelle instance de la classe MissingSatelliteAssemblyException avec un message d’erreur spécifié et le nom d’une culture neutre. |
| MissingSatelliteAssemblyException(String) |
Initialise une nouvelle instance de la MissingSatelliteAssemblyException classe avec le message d’erreur spécifié. |
Propriétés
| Nom | Description |
|---|---|
| CultureName |
Obtient le nom de la culture par défaut. |
| Data |
Obtient une collection de paires clé/valeur qui fournissent des informations supplémentaires définies par l’utilisateur 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 affecté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 actuelle. (Hérité de Exception) |
| Source |
Obtient ou définit le nom de l’application ou de l’objet qui provoque l’erreur. (Hérité de Exception) |
| StackTrace |
Obtient une représentation sous forme de chaîne des images immédiates 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
| Nom | Description |
|---|---|
| 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 la cause racine d’une ou plusieurs exceptions ultérieures. (Hérité de Exception) |
| GetHashCode() |
Sert de fonction de hachage par défaut. (Hérité de Object) |
| GetObjectData(SerializationInfo, StreamingContext) |
En cas de substitution dans une classe dérivée, définit l'SerializationInfo avec des informations sur l’exception. (Hérité de Exception) |
| GetType() |
Obtient le type d’exécution de l’instance actuelle. (Hérité de Exception) |
| MemberwiseClone() |
Crée une copie superficielle du Objectactuel. (Hérité de Object) |
| ToString() |
Crée et retourne une représentation sous forme de chaîne de l’exception actuelle. (Hérité de Exception) |
Événements
| Nom | Description |
|---|---|
| SerializeObjectState |
Se produit lorsqu’une exception est sérialisée pour créer un objet d’état d’exception qui contient des données sérialisées sur l’exception. (Hérité de Exception) |