MissingSatelliteAssemblyException 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
기본 문화권의 리소스에 대한 위성 어셈블리가 없는 경우 throw되는 예외입니다.
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
- 상속
- 특성
예제
다음 예제에서는 특성을 사용하여 NeutralResourcesLanguageAttribute 영어가 앱의 기본 문화권이며 해당 리소스가 위성 어셈블리에 저장됨을 나타냅니다. 예제 자체에는 다음 표에 설명된 대로 영어 및 프랑스어 문화권에 대한 .txt 파일의 리소스가 포함됩니다.
문화권 | 리소스 이름/값 | 파일 이름 |
---|---|---|
영어 | Greet=Hello | Greet.en.txt |
프랑스어 | Greet=Bonjour | Greet.fr.txt |
다음 소스 코드는 현재 UI 문화권을 먼저 프랑스어(프랑스)로 변경한 다음 러시아어(러시아)로 변경하는 앱을 빌드하고 두 경우 모두 적절한 문화권별 리소스를 표시합니다.
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# 버전을 빌드하고 실행할 수 있습니다. Visual Basic을 사용하는 경우 csc
를 vbc
로 바꾸고 .cs
확장을 .vb
로 바꿉니다. 예제가 실행되면 프랑스어 문자열을 표시하지만 현재 문화권이 러시아어(러시아)인 경우 예외를 throw합니다 MissingSatelliteAssemblyException . 이는 기본 문화권의 리소스를 포함하는 위성 어셈블리 en\HelloWorld.dll 존재하지 않기 때문입니다.
vbc HelloWorld.vb
md fr
resgen Greet.fr.txt
al /out:fr\HelloWorld.resources.dll /culture:fr /embed:GreetResources.fr.resources
HelloWorld
다음 일괄 처리 파일을 사용하여 Visual Basic 버전의 예제를 빌드하고 실행할 수 있습니다. C#을 사용하는 경우 를 로 csc
바꾸고 vbc
확장을 로 .cs
바꿉 .vb
니다. 예제가 실행되면 현재 UI 문화권이 프랑스어(프랑스)일 때 프랑스어 문자열을 표시합니다. 현재 UI 문화권이 러시아어(러시아어)인 경우 러시아어 리소스가 존재하지 않으므로 영어 문자열이 표시되지만 리소스 관리자는 위성 어셈블리 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
설명
기본 문화권은 적절한 문화권별 리소스를 찾을 수 없는 경우 리소스가 로드되는 문화권입니다. 기본적으로 기본 문화권에 대한 리소스는 기본 어셈블리에 있으며 MissingManifestResourceException 리소스 관리자가 검색을 시도하지만 기본 문화권에 대한 리소스를 찾을 수 없는 경우 이 throw됩니다. 그러나 특성이 위치 매개 변수의 값을 UltimateResourceFallbackLocation.Satellite 지정하는 경우 NeutralResourcesLanguageAttribute .NET Framework 위성 어셈블리에서 앱의 기본 문화권에 대한 리소스를 로드합니다. 이 경우 MissingSatelliteAssemblyException 리소스 관리자가 기본 문화권의 리소스를 검색하려고 할 때 예외가 throw되고 특성에 NeutralResourcesLanguageAttribute 지정된 문화권에 대한 위성 어셈블리가 누락됩니다. 예외는 개체가 인스턴스화될 때가 아니라 또는 ResourceManager.GetObject와 같은 ResourceManager.GetString 리소스 검색 메서드에 ResourceManager 의해 throw됩니다.
MissingSatelliteAssemblyException 는 값이 0x80131536 HRESULT COR_E_MISSINGSATELLITEASSEMBLY 사용합니다.
MissingSatelliteAssemblyException 기본값을 사용 하 여 Equals 구현을 참조 일치를 지원 합니다.
클래스의 instance MissingSatelliteAssemblyException 대한 초기 속성 값 목록은 생성자를 참조 MissingSatelliteAssemblyException 하세요.
참고
항상 사용 해야 하는 NeutralResourcesLanguageAttribute 애플리케이션 허용 동작을 표시는 특정 문화권의 리소스를 사용할 수 없는 경우 앱의 기본 문화권을 정의 하는 특성입니다.
생성자
MissingSatelliteAssemblyException() |
기본 속성을 사용하여 MissingSatelliteAssemblyException 클래스의 새 인스턴스를 초기화합니다. |
MissingSatelliteAssemblyException(SerializationInfo, StreamingContext) |
사용되지 않음.
serialize된 데이터로부터 MissingSatelliteAssemblyException 클래스의 새 인스턴스를 초기화합니다. |
MissingSatelliteAssemblyException(String) |
지정된 오류 메시지를 사용하여 MissingSatelliteAssemblyException 클래스의 새 인스턴스를 초기화합니다. |
MissingSatelliteAssemblyException(String, Exception) |
지정된 오류 메시지와 해당 예외의 원인인 내부 예외에 대한 참조를 사용하여 MissingSatelliteAssemblyException 클래스의 새 인스턴스를 초기화합니다. |
MissingSatelliteAssemblyException(String, String) |
지정된 오류 메시지와 중립 culture의 이름을 사용하여 MissingSatelliteAssemblyException 클래스의 새 인스턴스를 초기화합니다. |
속성
CultureName |
기본 문화의 이름을 가져옵니다. |
Data |
예외에 대한 사용자 정의 정보를 추가로 제공하는 키/값 쌍 컬렉션을 가져옵니다. (다음에서 상속됨 Exception) |
HelpLink |
이 예외와 연결된 도움말 파일에 대한 링크를 가져오거나 설정합니다. (다음에서 상속됨 Exception) |
HResult |
특정 예외에 할당된 코드화된 숫자 값인 HRESULT를 가져오거나 설정합니다. (다음에서 상속됨 Exception) |
InnerException |
현재 예외를 발생시킨 Exception 인스턴스를 가져옵니다. (다음에서 상속됨 Exception) |
Message |
현재 예외를 설명하는 메시지를 가져옵니다. (다음에서 상속됨 Exception) |
Source |
오류를 발생시키는 애플리케이션 또는 개체의 이름을 가져오거나 설정합니다. (다음에서 상속됨 Exception) |
StackTrace |
호출 스택의 직접 실행 프레임 문자열 표현을 가져옵니다. (다음에서 상속됨 Exception) |
TargetSite |
현재 예외를 throw하는 메서드를 가져옵니다. (다음에서 상속됨 Exception) |
메서드
Equals(Object) |
지정된 개체가 현재 개체와 같은지 확인합니다. (다음에서 상속됨 Object) |
GetBaseException() |
파생 클래스에서 재정의된 경우 하나 이상의 후속 예외의 근본 원인이 되는 Exception 을 반환합니다. (다음에서 상속됨 Exception) |
GetHashCode() |
기본 해시 함수로 작동합니다. (다음에서 상속됨 Object) |
GetObjectData(SerializationInfo, StreamingContext) |
사용되지 않음.
파생 클래스에서 재정의된 경우 예외에 관한 정보를 SerializationInfo 에 설정합니다. (다음에서 상속됨 Exception) |
GetType() |
현재 인스턴스의 런타임 형식을 가져옵니다. (다음에서 상속됨 Exception) |
MemberwiseClone() |
현재 Object의 단순 복사본을 만듭니다. (다음에서 상속됨 Object) |
ToString() |
현재 예외에 대한 문자열 표현을 만들고 반환합니다. (다음에서 상속됨 Exception) |
이벤트
SerializeObjectState |
사용되지 않음.
예외에 대한 serialize된 데이터가 들어 있는 예외 상태 개체가 만들어지도록 예외가 serialize될 때 발생합니다. (다음에서 상속됨 Exception) |
적용 대상
추가 정보
.NET