MissingSatelliteAssemblyException クラス

定義

既定のカルチャのリソースのサテライト アセンブリが見つからない場合にスローされる例外。The exception that is thrown when the satellite assembly for the resources of the default culture is missing.

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
継承
MissingSatelliteAssemblyException
属性

次の例では、属性を使用して、 NeutralResourcesLanguageAttribute 英語がアプリの既定のカルチャであり、そのリソースがサテライトアセンブリに格納されていることを示しています。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. この例では、次の表に示すように、英語とフランス語のカルチャの .txt ファイルにリソースが含まれています。The example itself includes resources in .txt files for the English and French cultures, as described in the following table:

カルチャCulture リソース名/値Resource name/value ファイル名File name
英語English あいさつ = HelloGreet=Hello Greet.en.txtGreet.en.txt
フランス語French あいさつ = BonjourGreet=Bonjour Greet.fr.txtGreet.fr.txt

次のソースコードは、現在の UI カルチャを最初にフランス語 (フランス) に変更し、次にロシア語 (ロシア) に変更し、両方の場合に適切なカルチャ固有のリソースを表示するアプリをビルドします。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

次のバッチファイルを使用すると、この例の C# バージョンをビルドして実行できます。You can use the following batch file to build and execute the C# version of the example. Visual Basic を使用している場合は、cscvbc に置換し、.cs 拡張子を .vb に置換します。If you're using Visual Basic, replace csc with vbc, and replace the .cs extension with .vb. この例を実行すると、フランス語の文字列が表示され MissingSatelliteAssemblyException ますが、現在のカルチャがロシア語 (ロシア) の場合は例外がスローされます。When the example is executed, it displays a French language string but throws a MissingSatelliteAssemblyException exception when the current culture is Russian (Russia). これは、既定のカルチャのリソースを含むサテライトアセンブリ en\HelloWorld.dll が存在しないためです。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  

次のバッチファイルを使用すると、この例の Visual Basic バージョンをビルドして実行できます。You can use the following batch file to build and execute the Visual Basic version of the example. C# を使用している場合は、をに置き換え、 vbc csc 拡張子を .vb に置き換え .cs ます。If you're using C#, replace vbc with csc, and replace the .vb extension with .cs. この例を実行すると、現在の UI カルチャがフランス語 (フランス) の場合にフランス語の文字列が表示されます。When the example is executed, it displays a French language string when the current UI culture is French (France). 現在の UI カルチャがロシア語 (ロシア語) である場合、ロシア語の言語リソースが存在しないため、英語の言語の文字列が表示されます。ただし、resource manager は、サテライトアセンブリから既定のカルチャのリソースを読み込むことができます (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  

注釈

既定のカルチャは、適切なカルチャ固有のリソースが見つからない場合に、リソースが読み込まれるカルチャです。The default culture is the culture whose resources are loaded if the appropriate culture-specific resources cannot be found. 既定では、既定のカルチャのリソースはメインアセンブリに配置され、 MissingManifestResourceException リソースマネージャーが既定のカルチャのリソースを取得しようとすると、がスローされます。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. ただし、 NeutralResourcesLanguageAttribute 属性で location パラメーターに値が指定されている場合、.NET Framework は、サテライトアセンブリからアプリの既定のカルチャのリソースを読み込みます UltimateResourceFallbackLocation.SatelliteHowever, 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. この場合、 MissingSatelliteAssemblyException リソースマネージャーが既定のカルチャのリソースを取得しようとしたときに、属性で指定されているカルチャのサテライトアセンブリが見つからないと、例外がスローされ NeutralResourcesLanguageAttribute ます。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. 例外は、 ResourceManager.GetString ResourceManager.GetObject 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 では、値0x80131536 を持つ HRESULT COR_E_MISSINGSATELLITEASSEMBLY が使用されます。MissingSatelliteAssemblyException uses the HRESULT COR_E_MISSINGSATELLITEASSEMBLY, which has the value 0x80131536.

MissingSatelliteAssemblyException は、 Equals 参照の等価性をサポートする既定の実装を使用します。MissingSatelliteAssemblyException uses the default Equals implementation, which supports reference equality.

クラスのインスタンスの初期プロパティ値の一覧につい MissingSatelliteAssemblyException ては、「コンストラクター」を参照してください MissingSatelliteAssemblyExceptionFor a list of initial property values for an instance of the MissingSatelliteAssemblyException class, see the MissingSatelliteAssemblyException constructors.

注意

NeutralResourcesLanguageAttribute特定のカルチャのリソースが使用できない場合、アプリケーションには許容される動作が表示されるように、常に、属性を使用してアプリの既定のカルチャを定義する必要があります。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.

コンストラクター

MissingSatelliteAssemblyException()

MissingSatelliteAssemblyException クラスの新しいインスタンスを、既定のプロパティを使用して初期化します。Initializes a new instance of the MissingSatelliteAssemblyException class with default properties.

MissingSatelliteAssemblyException(SerializationInfo, StreamingContext)

シリアル化したデータから、MissingSatelliteAssemblyException クラスの新しいインスタンスを初期化します。Initializes a new instance of the MissingSatelliteAssemblyException class from serialized data.

MissingSatelliteAssemblyException(String)

指定されたエラー メッセージで MissingSatelliteAssemblyException クラスの新しいインスタンスを初期化します。Initializes a new instance of the MissingSatelliteAssemblyException class with the specified error message.

MissingSatelliteAssemblyException(String, Exception)

指定したエラー メッセージおよびこの例外の原因となった内部例外への参照を使用して、MissingSatelliteAssemblyException クラスの新しいインスタンスを初期化します。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 クラスの新しいインスタンスを初期化します。Initializes a new instance of the MissingSatelliteAssemblyException class with a specified error message and the name of a neutral culture.

プロパティ

CultureName

既定のカルチャの名前を取得します。Gets the name of the default culture.

Data

例外に関する追加のユーザー定義情報を提供する、キーと値のペアのコレクションを取得します。Gets a collection of key/value pairs that provide additional user-defined information about the exception.

(継承元 Exception)
HelpLink

この例外に関連付けられているヘルプ ファイルへのリンクを取得または設定します。Gets or sets a link to the help file associated with this exception.

(継承元 Exception)
HResult

特定の例外に割り当てられているコード化数値である HRESULT を取得または設定します。Gets or sets HRESULT, a coded numerical value that is assigned to a specific exception.

(継承元 Exception)
InnerException

現在の例外の原因となる Exception インスタンスを取得します。Gets the Exception instance that caused the current exception.

(継承元 Exception)
Message

現在の例外を説明するメッセージを取得します。Gets a message that describes the current exception.

(継承元 Exception)
Source

エラーの原因となるアプリケーションまたはオブジェクトの名前を取得または設定します。Gets or sets the name of the application or the object that causes the error.

(継承元 Exception)
StackTrace

呼び出し履歴で直前のフレームの文字列形式を取得します。Gets a string representation of the immediate frames on the call stack.

(継承元 Exception)
TargetSite

現在の例外がスローされたメソッドを取得します。Gets the method that throws the current exception.

(継承元 Exception)

メソッド

Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。Determines whether the specified object is equal to the current object.

(継承元 Object)
GetBaseException()

派生クラスでオーバーライドされた場合、それ以後に発生する 1 つ以上の例外の根本原因である Exception を返します。When overridden in a derived class, returns the Exception that is the root cause of one or more subsequent exceptions.

(継承元 Exception)
GetHashCode()

既定のハッシュ関数として機能します。Serves as the default hash function.

(継承元 Object)
GetObjectData(SerializationInfo, StreamingContext)

派生クラスでオーバーライドされた場合は、その例外に関する情報を使用して SerializationInfo を設定します。When overridden in a derived class, sets the SerializationInfo with information about the exception.

(継承元 Exception)
GetType()

現在のインスタンスのランタイム型を取得します。Gets the runtime type of the current instance.

(継承元 Exception)
MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(継承元 Object)
ToString()

現在の例外の文字列形式を作成して返します。Creates and returns a string representation of the current exception.

(継承元 Exception)

イベント

SerializeObjectState

例外がシリアル化され、例外に関するシリアル化されたデータを含む例外状態オブジェクトが作成されたときに発生します。Occurs when an exception is serialized to create an exception state object that contains serialized data about the exception.

(継承元 Exception)

適用対象

こちらもご覧ください