MissingSatelliteAssemblyException Clase

Definición

Excepción que se produce cuando falta el ensamblado satélite para los recursos de la referencia cultural predeterminada.

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
Herencia
MissingSatelliteAssemblyException
Atributos

Ejemplos

En el ejemplo siguiente se usa el NeutralResourcesLanguageAttribute atributo para indicar que el inglés es la referencia cultural predeterminada de la aplicación y que sus recursos se almacenan en un ensamblado satélite. El propio ejemplo incluye recursos en archivos .txt para las referencias culturales de inglés y francés, como se describe en la tabla siguiente:

Cultura Nombre y valor del recurso Nombre de archivo
Inglés Greet=Hello Greet.en.txt
Francés Greet=Bonjour Greet.fr.txt

El código fuente siguiente compila una aplicación que cambia primero la referencia cultural de la interfaz de usuario actual a francés (Francia) y, a continuación, a Ruso (Rusia) y muestra un recurso adecuado específico de la referencia cultural en ambos casos.

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

Puede usar el siguiente archivo por lotes para compilar y ejecutar la versión de C# del ejemplo. Si está usando Visual Basic, reemplace csc por vbc, y reemplace la extensión .cs por .vb. Cuando se ejecuta el ejemplo, muestra una cadena de idioma francés, pero produce una MissingSatelliteAssemblyException excepción cuando la referencia cultural actual es rusa (Rusia). Esto se debe a que el ensamblado satélite en\HelloWorld.dll que contiene los recursos de la referencia cultural predeterminada no existe.

vbc HelloWorld.vb

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

HelloWorld

Puede usar el siguiente archivo por lotes para compilar y ejecutar la versión de Visual Basic del ejemplo. Si está utilizando C#, reemplace vbc con csc, y reemplace la extensión .vb con .cs. Cuando se ejecuta el ejemplo, muestra una cadena de idioma francés cuando la referencia cultural actual de la interfaz de usuario es francés (Francia). Cuando la referencia cultural actual de la interfaz de usuario es Rusia (ruso), muestra una cadena de idioma inglés porque los recursos de idioma ruso no existen, pero el administrador de recursos puede cargar los recursos de la referencia cultural predeterminada desde el ensamblado satélite 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

Comentarios

La referencia cultural predeterminada es la referencia cultural cuyos recursos se cargan si no se encuentran los recursos específicos de la referencia cultural adecuados. De forma predeterminada, los recursos de la referencia cultural predeterminada se encuentran en el ensamblado principal y se produce una MissingManifestResourceException excepción si el administrador de recursos intenta recuperar pero no encuentra un recurso para la referencia cultural predeterminada. Sin embargo, el .NET Framework cargará los recursos para la referencia cultural predeterminada de una aplicación desde un ensamblado satélite si el atributo NeutralResourcesLanguageAttribute especifica un valor de UltimateResourceFallbackLocation.Satellite para el parámetro location. Cuando este es el caso, se produce la MissingSatelliteAssemblyException excepción cuando el administrador de recursos intenta recuperar un recurso de la referencia cultural predeterminada y el ensamblado satélite de la referencia cultural especificada en el NeutralResourcesLanguageAttribute atributo falta. Tenga en cuenta que un método de recuperación de recursos produce la excepción, como ResourceManager.GetString o ResourceManager.GetObject, y no cuando se crea una instancia del ResourceManager objeto.

MissingSatelliteAssemblyException usa el COR_E_MISSINGSATELLITEASSEMBLY HRESULT, que tiene el valor 0x80131536.

MissingSatelliteAssemblyException usa la implementación predeterminada Equals , que admite la igualdad de referencias.

Para obtener una lista de los valores de propiedad iniciales de una instancia de la MissingSatelliteAssemblyException clase, consulte los MissingSatelliteAssemblyException constructores.

Note

Siempre debes usar el atributo para definir la NeutralResourcesLanguageAttribute referencia cultural predeterminada de la aplicación para que si un recurso para una referencia cultural específica no está disponible, la aplicación mostrará un comportamiento aceptable.

Constructores

Nombre Description
MissingSatelliteAssemblyException()

Inicializa una nueva instancia de la MissingSatelliteAssemblyException clase con propiedades predeterminadas.

MissingSatelliteAssemblyException(SerializationInfo, StreamingContext)

Inicializa una nueva instancia de la MissingSatelliteAssemblyException clase a partir de datos serializados.

MissingSatelliteAssemblyException(String, Exception)

Inicializa una nueva instancia de la MissingSatelliteAssemblyException clase con un mensaje de error especificado y una referencia a la excepción interna que es la causa de esta excepción.

MissingSatelliteAssemblyException(String, String)

Inicializa una nueva instancia de la clase MissingSatelliteAssemblyException con un mensaje de error especificado y el nombre de una referencia cultural neutra.

MissingSatelliteAssemblyException(String)

Inicializa una nueva instancia de la clase MissingSatelliteAssemblyException con el mensaje de error especificado.

Propiedades

Nombre Description
CultureName

Obtiene el nombre de la referencia cultural predeterminada.

Data

Obtiene una colección de pares clave-valor que proporcionan información adicional definida por el usuario sobre la excepción.

(Heredado de Exception)
HelpLink

Obtiene o establece un vínculo al archivo de ayuda asociado a esta excepción.

(Heredado de Exception)
HResult

Obtiene o establece HRESULT, un valor numérico codificado que se asigna a una excepción específica.

(Heredado de Exception)
InnerException

Obtiene la Exception instancia que provocó la excepción actual.

(Heredado de Exception)
Message

Obtiene un mensaje que describe la excepción actual.

(Heredado de Exception)
Source

Obtiene o establece el nombre de la aplicación o el objeto que provoca el error.

(Heredado de Exception)
StackTrace

Obtiene una representación de cadena de los fotogramas inmediatos en la pila de llamadas.

(Heredado de Exception)
TargetSite

Obtiene el método que produce la excepción actual.

(Heredado de Exception)

Métodos

Nombre Description
Equals(Object)

Determina si el objeto especificado es igual al objeto actual.

(Heredado de Object)
GetBaseException()

Cuando se reemplaza en una clase derivada, devuelve la Exception causa principal de una o varias excepciones posteriores.

(Heredado de Exception)
GetHashCode()

Actúa como la función hash predeterminada.

(Heredado de Object)
GetObjectData(SerializationInfo, StreamingContext)

Cuando se reemplaza en una clase derivada, establece con SerializationInfo información sobre la excepción.

(Heredado de Exception)
GetType()

Obtiene el tipo de tiempo de ejecución de la instancia actual.

(Heredado de Exception)
MemberwiseClone()

Crea una copia superficial del Objectactual.

(Heredado de Object)
ToString()

Crea y devuelve una representación de cadena de la excepción actual.

(Heredado de Exception)

Eventos

Nombre Description
SerializeObjectState

Se produce cuando se serializa una excepción para crear un objeto de estado de excepción que contiene datos serializados sobre la excepción.

(Heredado de Exception)

Se aplica a

Consulte también