MissingManifestResourceException Osztály

Definíció

Az a kivétel, amely akkor fordul elő, ha a főszerelvény nem tartalmazza a semleges kultúra erőforrásait, és hiányzik egy megfelelő műholdas szerelvény.

public ref class MissingManifestResourceException : Exception
public ref class MissingManifestResourceException : SystemException
public class MissingManifestResourceException : Exception
public class MissingManifestResourceException : SystemException
[System.Serializable]
public class MissingManifestResourceException : SystemException
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class MissingManifestResourceException : SystemException
type MissingManifestResourceException = class
    inherit Exception
type MissingManifestResourceException = class
    inherit SystemException
[<System.Serializable>]
type MissingManifestResourceException = class
    inherit SystemException
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type MissingManifestResourceException = class
    inherit SystemException
Public Class MissingManifestResourceException
Inherits Exception
Public Class MissingManifestResourceException
Inherits SystemException
Öröklődés
MissingManifestResourceException
Öröklődés
MissingManifestResourceException
Attribútumok

Megjegyzések

A MissingManifestResourceException kivételt dobhatnak különböző okokból a .NET- és UWP-alkalmazások.

.NET-alkalmazások

A .NET-alkalmazásokban az erőforrás lekérésének kísérlete meghiúsul, MissingManifestResourceException mert a semleges kultúra erőforráskészlete nem tölthető be egy adott szerelvényből. Bár a kivétel akkor fordul elő, amikor megpróbál egy adott erőforrást lekérni, a hibát az okozza, hogy nem az erőforrást, hanem az erőforráskészletet nem sikerült betölteni.

Note

A további információkért lásd a "ResourceManager osztály témakörében a "MissingManifestResourceException kivétel kezelése" szakaszt.

A kivétel fő okai a következők:

  • Az erőforráskészletet nem a teljesen kvalifikált neve azonosítja. Ha például a baseName metódus hívásában ResourceManager.ResourceManager(String, Assembly) szereplő paraméter névtér nélkül adja meg az erőforráskészlet gyökérnevét, de az erőforráskészlethez névtér van rendelve, amikor az a szerelvényben van tárolva, a metódus hívása ezt a ResourceManager.GetString kivételt okozza.

    Ha beágyazta az alapértelmezett kultúra erőforrásait tartalmazó .resources fájlt a végrehajtható fájlba, és az alkalmazás dob egy elemet MissingManifestResourceException, használhat egy tükrözési eszközt, például az IL-szétszerelőt (Ildasm.exe) az erőforrás teljes nevének meghatározásához. Az ILDasm alkalmazásban kattintson duplán a végrehajtható JEGYZÉK címkére a JEGYZÉK ablak megnyitásához. Az erőforrások elemekként .mresource jelennek meg, és külső szerelvényhivatkozások és egyéni szerelvényszintű attribútumok után jelennek meg. A következő egyszerű segédprogramot is lefordíthatja, amely felsorolja azoknak a beágyazott erőforrásoknak a teljes nevét a szerelvényben, amelyeknek a neve parancssori paraméterként van átadva.

    using System;
    using System.IO;
    using System.Reflection;
    using System.Resources;
    
    public class Example
    {
       public static void Main()
       {
          if (Environment.GetCommandLineArgs().Length == 1) { 
             Console.WriteLine("No filename.");
             return;
          }
          
          string filename = Environment.GetCommandLineArgs()[1].Trim();
          // Check whether the file exists.
          if (!File.Exists(filename)) {
             Console.WriteLine("{0} does not exist.", filename);
             return;
          }   
          
          // Try to load the assembly.
          Assembly assem = Assembly.LoadFrom(filename);
          Console.WriteLine("File: {0}", filename);
             
          // Enumerate the resource files.
          string[] resNames = assem.GetManifestResourceNames();
          if (resNames.Length == 0)
             Console.WriteLine("   No resources found.");
    
          foreach (var resName in resNames)
             Console.WriteLine("   Resource: {0}", resName.Replace(".resources", ""));
    
          Console.WriteLine();
       }
    }
    
    Imports System.IO
    Imports System.Reflection
    Imports System.Resources
    
    Module Example
       Public Sub Main()
          If Environment.GetCommandLineArgs.Length = 1 Then 
             Console.WriteLine("No filename.")
             Exit Sub
          End If
          Dim filename As String = Environment.GetCommandLineArgs(1).Trim()
          ' Check whether the file exists.
          If Not File.Exists(filename) Then
             Console.WriteLine("{0} does not exist.", filename)
             Exit Sub
          End If   
          
          ' Try to load the assembly.
          Dim assem As Assembly = Assembly.LoadFrom(filename)
          Console.WriteLine("File: {0}", filename)
             
          ' Enumerate the resource files.
          Dim resNames() As String = assem.GetManifestResourceNames()
          If resNames.Length = 0 Then
             Console.WriteLine("   No resources found.")
          End If
          For Each resName In resNames
             Console.WriteLine("   Resource: {0}", resName.Replace(".resources", ""))
          Next
          Console.WriteLine()
       End Sub
    End Module
    
  • Az erőforrást az erőforrásfájl neve (az opcionális névtérrel együtt) és a fájlkiterjesztése alapján azonosítja, nem pedig a névtér és a gyökérfájl neve alapján. Például ez a kivétel akkor jelentkezik, ha a semleges kultúra erőforráskészlete GlobalResources néven van elnevezve, és a GlobalResources.resources konstruktor GlobalResources paraméterének baseName (a ResourceManager.ResourceManager(String, Assembly) helyett) értéket ad meg.

  • A metódushívásban azonosított kultúraspecifikus erőforráskészlet nem található, és a tartalék erőforráskészlet nem tölthető be. Ha például műhold-összeállításokat hoz létre az angol (Egyesült Államok) és az orosz kultúrákhoz, de nem biztosít erőforráskészletet a semleges kultúrához, ez a kivétel akkor jelentkezik, ha az alkalmazás jelenlegi kultúrája angol (Egyesült Királyság).

MissingManifestResourceException A HRESULT COR_E_MISSINGMANIFESTRESOURCEfüggvényt használja, amelynek értéke 0x80131532.

MissingManifestResourceException az alapértelmezett Equals implementációt használja, amely támogatja a referencia-egyenlőséget.

A MissingManifestResourceException példány kezdeti tulajdonságainak listájáért tekintse meg a MissingManifestResourceException konstruktorokat.

Note

Javasoljuk, hogy egy semleges erőforráskészletet foglaljon bele a főszerelvénybe, így az alkalmazás nem fog meghibásodni, ha egy műholdas szerelvény nem érhető el.

Konstruktorok

Name Description
MissingManifestResourceException()

Inicializálja az osztály új példányát MissingManifestResourceException alapértelmezett tulajdonságokkal.

MissingManifestResourceException(SerializationInfo, StreamingContext)
Elavult.

Inicializálja az osztály új példányát szerializált MissingManifestResourceException adatokból.

MissingManifestResourceException(String, Exception)

Inicializálja az MissingManifestResourceException osztály új példányát egy megadott hibaüzenettel és a kivétel okaként szolgáló belső kivételre mutató hivatkozással.

MissingManifestResourceException(String)

Inicializálja az osztály új példányát MissingManifestResourceException a megadott hibaüzenettel.

Tulajdonságok

Name Description
Data

Lekéri a kulcs-/érték párok gyűjteményét, amelyek további, felhasználó által definiált információkat biztosítanak a kivételről.

(Öröklődés forrása Exception)
HelpLink

Lekéri vagy beállítja a kivételhez társított súgófájlra mutató hivatkozást.

(Öröklődés forrása Exception)
HResult

Lekéri vagy beállítja a HRESULT-ot, egy kódolt numerikus értéket, amely egy adott kivételhez van hozzárendelve.

(Öröklődés forrása Exception)
InnerException

Lekéri az Exception aktuális kivételt okozó példányt.

(Öröklődés forrása Exception)
Message

Az aktuális kivételt leíró üzenet jelenik meg.

(Öröklődés forrása Exception)
Source

Lekéri vagy beállítja az alkalmazás vagy a hibát okozó objektum nevét.

(Öröklődés forrása Exception)
StackTrace

Lekéri a hívásverem közvetlen kereteinek sztringképét.

(Öröklődés forrása Exception)
TargetSite

Lekéri az aktuális kivételt okozó metódust.

(Öröklődés forrása Exception)

Metódusok

Name Description
Equals(Object)

Meghatározza, hogy a megadott objektum egyenlő-e az aktuális objektummal.

(Öröklődés forrása Object)
GetBaseException()

Ha egy származtatott osztály felül van bírálva, egy Exception vagy több későbbi kivétel kiváltó okát adja vissza.

(Öröklődés forrása Exception)
GetHashCode()

Ez az alapértelmezett kivonatoló függvény.

(Öröklődés forrása Object)
GetObjectData(SerializationInfo, StreamingContext)
Elavult.

Ha felül van bírálva egy származtatott osztályban, a SerializationInfo kivétel adatait adja meg.

(Öröklődés forrása Exception)
GetType()

Lekéri az aktuális példány futtatókörnyezeti típusát.

(Öröklődés forrása Exception)
MemberwiseClone()

Az aktuális Objectpéldány sekély másolatát hozza létre.

(Öröklődés forrása Object)
ToString()

Létrehozza és visszaadja az aktuális kivétel sztring-ábrázolását.

(Öröklődés forrása Exception)

esemény

Name Description
SerializeObjectState
Elavult.

Akkor fordul elő, ha a kivétel szerializálva van egy kivételállapot-objektum létrehozásához, amely szerializált adatokat tartalmaz a kivételről.

(Öröklődés forrása Exception)

A következőre érvényes:

Lásd még