MissingSatelliteAssemblyException Classe

Definizione

Eccezione generata in caso di assembly satellite mancante per le risorse di impostazioni cultura predefinite.The exception that is thrown when the satellite assembly for the resources of the default culture is missing.

public ref class MissingSatelliteAssemblyException : SystemException
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public class MissingSatelliteAssemblyException : SystemException
type MissingSatelliteAssemblyException = class
    inherit SystemException
Public Class MissingSatelliteAssemblyException
Inherits SystemException
Ereditarietà
MissingSatelliteAssemblyException
Attributi

Esempi

Nell'esempio seguente viene usato l'attributo NeutralResourcesLanguageAttribute per indicare che l'inglese è la lingua predefinita dell'app e che le relative risorse sono archiviate in un assembly satellite.The following example uses the NeutralResourcesLanguageAttribute attribute to indicate that English is the app's default culture and that its resources are stored in a satellite assembly. Nell'esempio stesso sono incluse le risorse nei file con estensione txt per le impostazioni cultura inglese e francese, come descritto nella tabella seguente:The example itself includes resources in .txt files for the English and French cultures, as described in the following table:

Impostazioni culturaCulture Nome/valore risorsaResource name/value Nome fileFile name
IngleseEnglish Greet = HelloGreet=Hello Greet.en.txtGreet.en.txt
FranceseFrench Greet = BonjourGreet=Bonjour Greet.fr.txtGreet.fr.txt

Il codice sorgente seguente compila un'app che modifica le impostazioni cultura dell'interfaccia utente correnti prima in francese (Francia) e poi in russo (Russia) e visualizza una risorsa specifica delle impostazioni cultura appropriata in entrambi i casi.The following source code builds an app that changes the current UI culture first to French (France) and then to Russian (Russia) and displays an appropriate culture-specific resource in both cases.

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

Per compilare ed eseguire la C# versione dell'esempio, è possibile usare il file batch seguente.You can use the following batch file to build and execute the C# version of the example. Se si usa Visual Basic, sostituire csc con vbce l'estensione .cs con .vb.If you're using Visual Basic, replace csc with vbc, and replace the .cs extension with .vb. Quando l'esempio viene eseguito, viene visualizzata una stringa di lingua francese ma viene generata un'eccezione MissingSatelliteAssemblyException quando le impostazioni cultura correnti sono russe (Russia).When the example is executed, it displays a French language string but throws a MissingSatelliteAssemblyException exception when the current culture is Russian (Russia). Ciò è dovuto al fatto che l'assembly satellite en\HelloWorld.dll che contiene le risorse delle impostazioni cultura predefinite non esiste.This is because the satellite assembly en\HelloWorld.dll that contains the resources of the default culture does not exist.

  
vbc HelloWorld.vb  
  
md fr  
resgen Greet.fr.txt  
al /out:fr\HelloWorld.resources.dll /culture:fr /embed:GreetResources.fr.resources  
  
HelloWorld  
  

Per compilare ed eseguire la versione Visual Basic dell'esempio, è possibile utilizzare il file batch seguente.You can use the following batch file to build and execute the Visual Basic version of the example. Se si usa C#, sostituire vbc con csce sostituire l'estensione .vb con .cs.If you're using C#, replace vbc with csc, and replace the .vb extension with .cs. Quando l'esempio viene eseguito, viene visualizzata una stringa di lingua francese quando le impostazioni cultura correnti dell'interfaccia utente sono francesi (Francia).When the example is executed, it displays a French language string when the current UI culture is French (France). Quando le impostazioni cultura correnti dell'interfaccia utente sono russe (Russo), viene visualizzata una stringa in lingua inglese, perché le risorse della lingua russa non esistono, ma Resource Manager è in grado di caricare le risorse delle impostazioni cultura predefinite dall'assembly satellite en\HelloWorld2.dll.When the current UI culture is Russia (Russian), it displays an English language string because Russian language resources do not exist, but the resource manager is able to load the resources of the default culture from the satellite assembly 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  
  

Commenti

Le impostazioni cultura predefinite sono le impostazioni cultura le cui risorse vengono caricate se non è possibile trovare le risorse specifiche delle impostazioni cultura appropriate.The default culture is the culture whose resources are loaded if the appropriate culture-specific resources cannot be found. Per impostazione predefinita, le risorse per le impostazioni cultura predefinite si trovano nell'assembly principale e viene generata un'MissingManifestResourceException se il gestore di risorse tenta di recuperare ma non riesce a trovare una risorsa per le impostazioni cultura predefinite.By default, resources for the default culture are located in the main assembly, and a MissingManifestResourceException is thrown if the resource manager tries to retrieve but cannot find a resource for the default culture. Tuttavia, il .NET Framework caricherà le risorse per le impostazioni cultura predefinite di un'app da un assembly satellite se l'attributo NeutralResourcesLanguageAttribute specifica il valore UltimateResourceFallbackLocation.Satellite per il parametro location.However, the .NET Framework will load the resources for an app's default culture from a satellite assembly if the NeutralResourcesLanguageAttribute attribute specifies a value of UltimateResourceFallbackLocation.Satellite for the location parameter. In tal caso, viene generata l'eccezione MissingSatelliteAssemblyException quando il gestore di risorse tenta di recuperare una risorsa delle impostazioni cultura predefinite e l'assembly satellite per le impostazioni cultura specificate nell'attributo NeutralResourcesLanguageAttribute risulta mancante.When this is the case, the MissingSatelliteAssemblyException exception is thrown when the resource manager tries to retrieve a resource of the default culture and the satellite assembly for the culture specified in the NeutralResourcesLanguageAttribute attribute is missing. Si noti che l'eccezione viene generata da un metodo di recupero delle risorse, ad esempio ResourceManager.GetString o ResourceManager.GetObjecte non quando viene creata un'istanza dell'oggetto ResourceManager.Note that the exception is thrown by a resource retrieval method such as ResourceManager.GetString or ResourceManager.GetObject, and not when the ResourceManager object is instantiated.

MissingSatelliteAssemblyException utilizza HRESULT COR_E_MISSINGSATELLITEASSEMBLY, il cui valore è 0x80131536.MissingSatelliteAssemblyException uses the HRESULT COR_E_MISSINGSATELLITEASSEMBLY, which has the value 0x80131536.

MissingSatelliteAssemblyException usa l'implementazione Equals predefinita, che supporta l'uguaglianza dei riferimenti.MissingSatelliteAssemblyException uses the default Equals implementation, which supports reference equality.

Per un elenco dei valori iniziali delle proprietà di un'istanza della classe MissingSatelliteAssemblyException, vedere i costruttori di MissingSatelliteAssemblyException.For a list of initial property values for an instance of the MissingSatelliteAssemblyException class, see the MissingSatelliteAssemblyException constructors.

Nota

È consigliabile usare sempre l'attributo NeutralResourcesLanguageAttribute per definire le impostazioni cultura predefinite dell'app in modo che se una risorsa per impostazioni cultura specifiche non è disponibile, l'applicazione visualizzerà un comportamento accettabile.You should always use the NeutralResourcesLanguageAttribute attribute to define your app's default culture so that if a resource for a specific culture is unavailable, your application will display acceptable behavior.

Costruttori

MissingSatelliteAssemblyException()

Inizializza una nuova istanza della classe MissingSatelliteAssemblyException con le proprietà predefinite.Initializes a new instance of the MissingSatelliteAssemblyException class with default properties.

MissingSatelliteAssemblyException(SerializationInfo, StreamingContext)

Inizializza una nuova istanza della classe MissingSatelliteAssemblyException dai dati serializzati.Initializes a new instance of the MissingSatelliteAssemblyException class from serialized data.

MissingSatelliteAssemblyException(String)

Inizializza una nuova istanza della classe MissingSatelliteAssemblyException con il messaggio di errore specificato.Initializes a new instance of the MissingSatelliteAssemblyException class with the specified error message.

MissingSatelliteAssemblyException(String, Exception)

Inizializza una nuova istanza della classe MissingSatelliteAssemblyException con un messaggio di errore specificato e un riferimento all'eccezione interna che è la causa dell'eccezione corrente.Initializes a new instance of the MissingSatelliteAssemblyException class with a specified error message and a reference to the inner exception that is the cause of this exception.

MissingSatelliteAssemblyException(String, String)

Inizializza una nuova istanza della classe MissingSatelliteAssemblyException con il messaggio di errore e il nome delle impostazioni cultura non associate ad alcun paese specificati.Initializes a new instance of the MissingSatelliteAssemblyException class with a specified error message and the name of a neutral culture.

Proprietà

CultureName

Ottiene il nome delle impostazioni cultura predefinite.Gets the name of the default culture.

Data

Ottiene una raccolta di coppie chiave/valore che forniscono informazioni definite dall'utente aggiuntive sull'eccezione.Gets a collection of key/value pairs that provide additional user-defined information about the exception.

(Ereditato da Exception)
HelpLink

Ottiene o imposta un collegamento al file della Guida associato all'eccezione.Gets or sets a link to the help file associated with this exception.

(Ereditato da Exception)
HResult

Ottiene o imposta HRESULT, un valore numerico codificato che viene assegnato a un'eccezione specifica.Gets or sets HRESULT, a coded numerical value that is assigned to a specific exception.

(Ereditato da Exception)
InnerException

Ottiene l'istanza di Exception che ha causato l'eccezione corrente.Gets the Exception instance that caused the current exception.

(Ereditato da Exception)
Message

Ottiene un messaggio che descrive l'eccezione corrente.Gets a message that describes the current exception.

(Ereditato da Exception)
Source

Ottiene o imposta il nome dell'oggetto o dell'applicazione che ha generato l'errore.Gets or sets the name of the application or the object that causes the error.

(Ereditato da Exception)
StackTrace

Ottiene una rappresentazione di stringa dei frame immediati nello stack di chiamate.Gets a string representation of the immediate frames on the call stack.

(Ereditato da Exception)
TargetSite

Ottiene il metodo che genera l'eccezione corrente.Gets the method that throws the current exception.

(Ereditato da Exception)

Metodi

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.Determines whether the specified object is equal to the current object.

(Ereditato da Object)
GetBaseException()

Quando ne viene eseguito l'override in una classe derivata, restituisce l'Exception che è la causa radice di una o più eccezioni successive.When overridden in a derived class, returns the Exception that is the root cause of one or more subsequent exceptions.

(Ereditato da Exception)
GetHashCode()

Funge da funzione hash predefinita.Serves as the default hash function.

(Ereditato da Object)
GetObjectData(SerializationInfo, StreamingContext)

Quando ne viene eseguito l'override in una classe derivata, imposta il controllo SerializationInfo con le informazioni sull'eccezione.When overridden in a derived class, sets the SerializationInfo with information about the exception.

(Ereditato da Exception)
GetType()

Ottiene il tipo di runtime dell'istanza corrente.Gets the runtime type of the current instance.

(Ereditato da Exception)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.Creates a shallow copy of the current Object.

(Ereditato da Object)
ToString()

Crea e restituisce una rappresentazione di stringa dell'eccezione corrente.Creates and returns a string representation of the current exception.

(Ereditato da Exception)

Eventi

SerializeObjectState

Si verifica quando un'eccezione viene serializzata per creare un oggetto di stato eccezione contenente i dati serializzati relativi all'eccezione.Occurs when an exception is serialized to create an exception state object that contains serialized data about the exception.

(Ereditato da Exception)

Si applica a

Vedi anche