MissingSatelliteAssemblyException MissingSatelliteAssemblyException MissingSatelliteAssemblyException MissingSatelliteAssemblyException Class

Definição

A exceção que é lançada quando o assembly satélite dos recursos da cultura padrão está ausente.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
Herança
MissingSatelliteAssemblyExceptionMissingSatelliteAssemblyExceptionMissingSatelliteAssemblyExceptionMissingSatelliteAssemblyException
Atributos

Exemplos

O exemplo a seguir usa o NeutralResourcesLanguageAttribute atributo para indicar que inglês é a cultura padrão do aplicativo e que seus recursos são armazenados em um assembly satélite.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. O próprio exemplo inclui recursos em arquivos. txt para as culturas de inglês e francês, conforme descrito na tabela a seguir:The example itself includes resources in .txt files for the English and French cultures, as described in the following table:

CulturaCulture Recurso de nome/valorResource name/value Nome do arquivoFile name
InglêsEnglish Greet=HelloGreet=Hello Greet.en.txtGreet.en.txt
FrancêsFrench Greet=BonjourGreet=Bonjour Greet.fr.txtGreet.fr.txt

O código de origem a seguir cria um aplicativo que muda a cultura de interface do usuário atual primeiro o francês (França) e, em seguida, russo (Rússia) e exibe um recurso específico de cultura apropriado em ambos os casos.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 ass
//    embly named "HelloWorld.resources.dll, PublicKeyToken=" for fallback culture "en" either c
//    ould not be found or could not be loaded. This is generally a setup problem. Please consid
//    er 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 ass
'    embly named "HelloWorld.resources.dll, PublicKeyToken=" for fallback culture "en" either c
'    ould not be found or could not be loaded. This is generally a setup problem. Please consid
'    er 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

Você pode usar o seguinte arquivo em lotes para compilar e executar a versão C# do exemplo.You can use the following batch file to build and execute the C# version of the example. Se você estiver usando Visual Basic, substitua csc por vbc e substitua a extensão .cs por .vb.If you're using Visual Basic, replace csc with vbc, and replace the .cs extension with .vb. Quando o exemplo é executado, ele exibe uma cadeia de caracteres de idioma francês, mas gera um MissingSatelliteAssemblyException exceção quando a cultura atual é russo (Rússia).When the example is executed, it displays a French language string but throws a MissingSatelliteAssemblyException exception when the current culture is Russian (Russia). Isso ocorre porque o en\HelloWorld.dll de assembly satélite que contém os recursos da cultura padrão não existe.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  

Você pode usar o seguinte arquivo em lotes para compilar e executar a versão do Visual Basic do exemplo.You can use the following batch file to build and execute the Visual Basic version of the example. Se você estiver usando C#, substitua vbc com csce substitua o .vb extensão com .cs.If you're using C#, replace vbc with csc, and replace the .vb extension with .cs. Quando o exemplo é executado, ele exibe uma cadeia de caracteres de idioma francês quando a cultura de interface do usuário atual for o francês (França).When the example is executed, it displays a French language string when the current UI culture is French (France). Quando a cultura de interface do usuário atual é Rússia (Russo), ele exibe uma cadeia de caracteres do idioma inglês porque não existem recursos de idioma russo, mas o Gerenciador de recursos é capaz de carregar os recursos da cultura padrão do en\HelloWorld2.dll do assembly satélite.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  

Comentários

O padrão é a cultura cujos recursos serão carregados se os recursos específicos de cultura apropriados não podem ser encontrados.The default culture is the culture whose resources are loaded if the appropriate culture-specific resources cannot be found. Por padrão, os recursos para a cultura padrão estão localizados no assembly principal e um MissingManifestResourceException é gerada se o Gerenciador de recursos tenta recuperar, mas não é possível localizar um recurso para a cultura padrão.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. No entanto, o .NET Framework carregará aos recursos para a cultura padrão de um aplicativo de um assembly satélite se o NeutralResourcesLanguageAttribute atributo especifica um valor de UltimateResourceFallbackLocation.Satellite para o parâmetro de local.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. Quando esse for o caso, o MissingSatelliteAssemblyException exceção é lançada quando o Gerenciador de recursos tenta recuperar um recurso da cultura padrão e o assembly satélite para a cultura especificada no NeutralResourcesLanguageAttribute atributo está ausente.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. Observe que a exceção é lançada por um método de recuperação de recursos, como ResourceManager.GetString ou ResourceManager.GetObjecte não quando o ResourceManager objeto é instanciado.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 usa o HRESULT COR_E_MISSINGSATELLITEASSEMBLY, que tem o valor 0x80131536.MissingSatelliteAssemblyException uses the HRESULT COR_E_MISSINGSATELLITEASSEMBLY, which has the value 0x80131536.

MissingSatelliteAssemblyException usa o padrão Equals implementação, que dá suporte a igualdade de referência.MissingSatelliteAssemblyException uses the default Equals implementation, which supports reference equality.

Para obter uma lista de valores de propriedade inicial para uma instância das MissingSatelliteAssemblyException classe, consulte o MissingSatelliteAssemblyException construtores.For a list of initial property values for an instance of the MissingSatelliteAssemblyException class, see the MissingSatelliteAssemblyException constructors.

Observação

Você sempre deve usar o NeutralResourcesLanguageAttribute atributo para definir a cultura padrão do seu aplicativo para que se um recurso para uma cultura específica estiver indisponível, o aplicativo exibirá o comportamento aceitável.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.

Construtores

MissingSatelliteAssemblyException() MissingSatelliteAssemblyException() MissingSatelliteAssemblyException() MissingSatelliteAssemblyException()

Inicializa uma nova instância da classe MissingSatelliteAssemblyException com propriedades padrão.Initializes a new instance of the MissingSatelliteAssemblyException class with default properties.

MissingSatelliteAssemblyException(SerializationInfo, StreamingContext) MissingSatelliteAssemblyException(SerializationInfo, StreamingContext) MissingSatelliteAssemblyException(SerializationInfo, StreamingContext) MissingSatelliteAssemblyException(SerializationInfo, StreamingContext)

Inicializa uma nova instância da classe MissingSatelliteAssemblyException com base nos dados serializados.Initializes a new instance of the MissingSatelliteAssemblyException class from serialized data.

MissingSatelliteAssemblyException(String) MissingSatelliteAssemblyException(String) MissingSatelliteAssemblyException(String) MissingSatelliteAssemblyException(String)

Inicializa uma nova instância da classe MissingSatelliteAssemblyException com a mensagem de erro especificada.Initializes a new instance of the MissingSatelliteAssemblyException class with the specified error message.

MissingSatelliteAssemblyException(String, Exception) MissingSatelliteAssemblyException(String, Exception) MissingSatelliteAssemblyException(String, Exception) MissingSatelliteAssemblyException(String, Exception)

Inicializa uma nova instância da classe MissingSatelliteAssemblyException com uma mensagem de erro especificada e uma referência à exceção interna que é a causa da exceção.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) MissingSatelliteAssemblyException(String, String) MissingSatelliteAssemblyException(String, String) MissingSatelliteAssemblyException(String, String)

Inicializa uma nova instância da classe MissingSatelliteAssemblyException com uma mensagem de erro especificada e o nome de uma cultura neutra.Initializes a new instance of the MissingSatelliteAssemblyException class with a specified error message and the name of a neutral culture.

Propriedades

CultureName CultureName CultureName CultureName

Obtém o nome da cultura padrão.Gets the name of the default culture.

Data Data Data Data

Obtém uma coleção de pares de chave/valor que fornecem informações adicionais definidas pelo usuário sobre a exceção.Gets a collection of key/value pairs that provide additional user-defined information about the exception.

(Inherited from Exception)
HelpLink HelpLink HelpLink HelpLink

Obtém ou define um link para o arquivo de ajuda associado a essa exceção.Gets or sets a link to the help file associated with this exception.

(Inherited from Exception)
HResult HResult HResult HResult

Obtém ou define HRESULT, um valor numérico codificado que é atribuído a uma exceção específica.Gets or sets HRESULT, a coded numerical value that is assigned to a specific exception.

(Inherited from Exception)
InnerException InnerException InnerException InnerException

Obtém a instância Exception que causou a exceção atual.Gets the Exception instance that caused the current exception.

(Inherited from Exception)
Message Message Message Message

Obtém uma mensagem que descreve a exceção atual.Gets a message that describes the current exception.

(Inherited from Exception)
Source Source Source Source

Obtém ou define o nome do aplicativo ou objeto que causa o erro.Gets or sets the name of the application or the object that causes the error.

(Inherited from Exception)
StackTrace StackTrace StackTrace StackTrace

Obtém uma representação de cadeia de caracteres de quadros imediatos na pilha de chamadas.Gets a string representation of the immediate frames on the call stack.

(Inherited from Exception)
TargetSite TargetSite TargetSite TargetSite

Obtém o método que gerou a exceção atual.Gets the method that throws the current exception.

(Inherited from Exception)

Métodos

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetBaseException() GetBaseException() GetBaseException() GetBaseException()

Quando substituído em uma classe derivada, retorna a Exception que é a causa raiz de uma ou mais exceções subsequentes.When overridden in a derived class, returns the Exception that is the root cause of one or more subsequent exceptions.

(Inherited from Exception)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Serve como a função de hash padrão.Serves as the default hash function.

(Inherited from Object)
GetObjectData(SerializationInfo, StreamingContext) GetObjectData(SerializationInfo, StreamingContext) GetObjectData(SerializationInfo, StreamingContext) GetObjectData(SerializationInfo, StreamingContext)

Quando substituído em uma classe derivada, define o SerializationInfo com informações sobre a exceção.When overridden in a derived class, sets the SerializationInfo with information about the exception.

(Inherited from Exception)
GetType() GetType() GetType() GetType()

Obtém o tipo de tempo de execução da instância atual.Gets the runtime type of the current instance.

(Inherited from Exception)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Cria uma cópia superficial do Object atual.Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

Cria e retorna uma representação de cadeia de caracteres da exceção atual.Creates and returns a string representation of the current exception.

(Inherited from Exception)

Eventos

SerializeObjectState SerializeObjectState SerializeObjectState SerializeObjectState

Ocorre quando uma exceção é serializada para criar um objeto de estado de exceção que contém dados serializados sobre a exceção.Occurs when an exception is serialized to create an exception state object that contains serialized data about the exception.

(Inherited from Exception)

Aplica-se a

Veja também