MissingSatelliteAssemblyException Sınıf
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Varsayılan kültürün kaynakları için uydu derlemesi eksik olduğunda oluşan özel durum.
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
- Devralma
- Öznitelikler
Örnekler
Aşağıdaki örnek, İngilizce'nin NeutralResourcesLanguageAttribute uygulamanın varsayılan kültürü olduğunu ve kaynaklarının bir uydu derlemesinde depolandığını belirtmek için özniteliğini kullanır. Örnek, aşağıdaki tabloda açıklandığı gibi İngilizce ve Fransızca kültürleri için .txt dosyalarındaki kaynakları içerir:
Kültür | Kaynak adı/değeri | Dosya adı |
---|---|---|
İngilizce | Greet=Hello | Greet.en.txt |
Fransızca | Greet=Bonjour | Greet.fr.txt |
Aşağıdaki kaynak kodu, geçerli kullanıcı arabirimi kültürünü önce Fransızca (Fransa) ve ardından Rusça (Rusya) olarak değiştiren ve her iki durumda da kültüre özgü uygun bir kaynak görüntüleyen bir uygulama oluşturur.
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
Aşağıdaki toplu iş dosyasını kullanarak örneğin C# sürümünü derleyebilir ve yürütebilirsiniz. Visual Basic kullanıyorsanız öğesini csc
ile vbc
değiştirin ve uzantısını .cs
ile .vb
değiştirin. Örnek yürütülürken Fransızca dil dizesini görüntüler ancak geçerli kültür Rusça (Rusya) olduğunda bir MissingSatelliteAssemblyException özel durum oluşturur. Bunun nedeni, uydu derlemesinin varsayılan kültürün kaynaklarını içeren en\HelloWorld.dll mevcut olmamasıdır.
vbc HelloWorld.vb
md fr
resgen Greet.fr.txt
al /out:fr\HelloWorld.resources.dll /culture:fr /embed:GreetResources.fr.resources
HelloWorld
Aşağıdaki toplu iş dosyasını kullanarak örneğin Visual Basic sürümünü derleyebilir ve yürütebilirsiniz. C# kullanıyorsanız değerini vbc
ile csc
değiştirin ve uzantısını .vb
ile .cs
değiştirin. Örnek yürütürken, geçerli kullanıcı arabirimi kültürü Fransızca (Fransa) olduğunda bir Fransızca dil dizesi görüntüler. Geçerli kullanıcı arabirimi kültürü Rusya (Rusça) olduğunda, Rusça dil kaynakları mevcut olmadığından bir İngilizce dil dizesi görüntüler, ancak kaynak yöneticisi varsayılan kültürün kaynaklarını uydu derlemesinden en\HelloWorld2.dll yükleyebilir.
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
Açıklamalar
Varsayılan kültür, uygun kültüre özgü kaynaklar bulunamazsa kaynakları yüklenen kültürdür. Varsayılan olarak, varsayılan kültüre yönelik kaynaklar ana derlemede bulunur ve MissingManifestResourceException kaynak yöneticisi varsayılan kültür için bir kaynak almayı dener ancak bulamazsa oluşturulur. Ancak özniteliği konum parametresi için değerini belirtirseNeutralResourcesLanguageAttribute, .NET Framework bir uygulamanın varsayılan kültürüne yönelik UltimateResourceFallbackLocation.Satellite kaynakları uydu derlemesinden yükler. Bu durumda, MissingSatelliteAssemblyException kaynak yöneticisi varsayılan kültürün kaynağını almaya çalıştığında ve özniteliğinde NeutralResourcesLanguageAttribute belirtilen kültür için uydu derlemesi eksik olduğunda özel durum oluşturulur. Özel durumun, nesne örneği oluşturulurken değil veya ResourceManager.GetObjectgibi ResourceManager.GetString bir kaynak alma yöntemi tarafından oluştuğunu ResourceManager unutmayın.
MissingSatelliteAssemblyException değeri 0x80131536 olan HRESULT COR_E_MISSINGSATELLITEASSEMBLY kullanır.
MissingSatelliteAssemblyException başvuru eşitliğini destekleyen varsayılan Equals uygulamayı kullanır.
Sınıfının bir örneğinin ilk özellik değerlerinin MissingSatelliteAssemblyException listesi için oluşturuculara MissingSatelliteAssemblyException bakın.
Not
Uygulamanızın varsayılan kültürünü tanımlamak için her zaman özniteliğini NeutralResourcesLanguageAttribute kullanmanız gerekir, böylece belirli bir kültüre ait bir kaynak kullanılamıyorsa uygulamanız kabul edilebilir bir davranış görüntüler.
Oluşturucular
MissingSatelliteAssemblyException() |
Sınıfın MissingSatelliteAssemblyException yeni bir örneğini varsayılan özelliklerle başlatır. |
MissingSatelliteAssemblyException(SerializationInfo, StreamingContext) |
Geçersiz.
Serileştirilmiş verilerden sınıfının yeni bir örneğini MissingSatelliteAssemblyException başlatır. |
MissingSatelliteAssemblyException(String) |
Belirtilen hata iletisiyle sınıfının yeni bir örneğini MissingSatelliteAssemblyException başlatır. |
MissingSatelliteAssemblyException(String, Exception) |
Belirtilen bir hata iletisi ve bu özel durumun nedeni olan iç özel duruma başvuru ile sınıfının yeni bir örneğini MissingSatelliteAssemblyException başlatır. |
MissingSatelliteAssemblyException(String, String) |
Belirtilen bir hata iletisi ve nötr bir kültürün MissingSatelliteAssemblyException adıyla sınıfının yeni bir örneğini başlatır. |
Özellikler
CultureName |
Varsayılan kültürün adını alır. |
Data |
Özel durum hakkında kullanıcı tanımlı ek bilgiler sağlayan bir anahtar/değer çifti koleksiyonu alır. (Devralındığı yer: Exception) |
HelpLink |
Bu özel durumla ilişkili yardım dosyasının bağlantısını alır veya ayarlar. (Devralındığı yer: Exception) |
HResult |
Belirli bir özel duruma atanan kodlanmış sayısal bir değer olan HRESULT değerini alır veya ayarlar. (Devralındığı yer: Exception) |
InnerException |
Geçerli özel duruma Exception neden olan örneği alır. (Devralındığı yer: Exception) |
Message |
Geçerli özel durumu açıklayan bir ileti alır. (Devralındığı yer: Exception) |
Source |
Hataya neden olan uygulamanın veya nesnenin adını alır veya ayarlar. (Devralındığı yer: Exception) |
StackTrace |
Çağrı yığınındaki anlık çerçevelerin dize gösterimini alır. (Devralındığı yer: Exception) |
TargetSite |
Geçerli özel durumu oluşturan yöntemini alır. (Devralındığı yer: Exception) |
Yöntemler
Equals(Object) |
Belirtilen nesnenin geçerli nesneye eşit olup olmadığını belirler. (Devralındığı yer: Object) |
GetBaseException() |
Türetilmiş bir sınıfta geçersiz kılındığında, sonraki bir veya daha fazla özel durumun kök nedeni olan değerini döndürür Exception . (Devralındığı yer: Exception) |
GetHashCode() |
Varsayılan karma işlevi işlevi görür. (Devralındığı yer: Object) |
GetObjectData(SerializationInfo, StreamingContext) |
Geçersiz.
Türetilmiş bir sınıfta geçersiz kılındığında, özel durum hakkındaki bilgilerle öğesini ayarlar SerializationInfo . (Devralındığı yer: Exception) |
GetType() |
Geçerli örneğin çalışma zamanı türünü alır. (Devralındığı yer: Exception) |
MemberwiseClone() |
Geçerli Objectöğesinin sığ bir kopyasını oluşturur. (Devralındığı yer: Object) |
ToString() |
Geçerli özel durumun dize gösterimini oluşturur ve döndürür. (Devralındığı yer: Exception) |
Ekinlikler
SerializeObjectState |
Geçersiz.
Bir özel durum, özel durum hakkında serileştirilmiş veriler içeren bir özel durum nesnesi oluşturmak üzere seri hale getirildiğinde gerçekleşir. (Devralındığı yer: Exception) |