Hallo an alle Leser,
ich habe ein Problem, womit ich einfach nicht weiter komme. Ich habe dazu auch Google/Bing befragt allerdings bin ich mit den Ergebnissen auch nicht weiter gekommen. Vielleicht denke ich aber auch nur einfach zu kompliziert.
Ich habe ein Anwendung, welche als GUI dient und einen neuen Thread startet (Server für eine spezielle Aufgabe). Unter anderem wird dann die Funktion Reload aufgerufen:[Highlight=c#]public static class ServerInit
{
public static Boolean Reload()
{
#region # Load data #
ServerData.Paths.Add(MCServePaths.FOLDER_LOGS, Assembly.GetExecutingAssembly().Location + "\\logs");
ServerData.Paths.Add(MCServePaths.FOLDER_PLUGINS, Assembly.GetExecutingAssembly().Location + \\plugins);[/Highlight]MCServePaths ist ein enum aus einer anderen Bibliothek:[highlight=c#]public enum MCServePaths {
SETTINGS,
LIST_BANNED_IPS,
LIST_BANNED_PLAYERS,
LIST_OPS,
LIST_WHITELIST,
LOG_SERVER,
LOG_MESSAGES,
LOG_WARNING,
LOG_ERRORS,
FOLDER_PLUGINS,
FOLDER_LOGS,
FOLDER_SETTINGS,
FOLDER_WORLDS
}[/highlight]ServerData.Paths ist vom Typ Dictionary<MCServePaths, String>.
Meiner Meinung nach, sollte dem Dictionary einfach jedes mal ein Eintrag hinzugefügt werden, welche sich dann mit dem MCServePaths auslesen lassen.
Die Exception tritt allerdings schon beim ersten "ServerData.Paths.Add(MCServePaths.FOLDER_LOGS , Assembly.GetExecutingAssembly().Location + "\\logs");" auf.
Hier sind die Ausnahmedetails von VS2012:
Aus der Zeile "Der angegebene Schlüssel war nicht im Wörterbuch angegeben." entnehme ich, dass es ein Fehler mit MCServePaths gibt, oder?
Ich bin echt froh über jede Hilfe .
MfG Xe77a
ich habe ein Problem, womit ich einfach nicht weiter komme. Ich habe dazu auch Google/Bing befragt allerdings bin ich mit den Ergebnissen auch nicht weiter gekommen. Vielleicht denke ich aber auch nur einfach zu kompliziert.
Ich habe ein Anwendung, welche als GUI dient und einen neuen Thread startet (Server für eine spezielle Aufgabe). Unter anderem wird dann die Funktion Reload aufgerufen:[Highlight=c#]public static class ServerInit
{
public static Boolean Reload()
{
#region # Load data #
ServerData.Paths.Add(MCServePaths.FOLDER_LOGS, Assembly.GetExecutingAssembly().Location + "\\logs");
ServerData.Paths.Add(MCServePaths.FOLDER_PLUGINS, Assembly.GetExecutingAssembly().Location + \\plugins);[/Highlight]MCServePaths ist ein enum aus einer anderen Bibliothek:[highlight=c#]public enum MCServePaths {
SETTINGS,
LIST_BANNED_IPS,
LIST_BANNED_PLAYERS,
LIST_OPS,
LIST_WHITELIST,
LOG_SERVER,
LOG_MESSAGES,
LOG_WARNING,
LOG_ERRORS,
FOLDER_PLUGINS,
FOLDER_LOGS,
FOLDER_SETTINGS,
FOLDER_WORLDS
}[/highlight]ServerData.Paths ist vom Typ Dictionary<MCServePaths, String>.
Meiner Meinung nach, sollte dem Dictionary einfach jedes mal ein Eintrag hinzugefügt werden, welche sich dann mit dem MCServePaths auslesen lassen.
Die Exception tritt allerdings schon beim ersten "ServerData.Paths.Add(MCServePaths.FOLDER_LOGS , Assembly.GetExecutingAssembly().Location + "\\logs");" auf.
Hier sind die Ausnahmedetails von VS2012:
Code:
System.TypeInitializationException wurde nicht behandelt. HResult=-2146233036 Message=Der Typeninitialisierer für "MCServeCore.ServerData" hat eine Ausnahme verursacht. Source=MCServeCore TypeName=MCServeCore.ServerData StackTrace: bei MCServeCore.Init.ServerInit.Reload() in c:\Users\Lars\Documents\Visual Studio 2012\Projects\MCServe\MCServeCore\Init\ServerInit.cs:Zeile 30. bei MCServeCore.GameServer.Initialize() in c:\Users\Lars\Documents\Visual Studio 2012\Projects\MCServe\MCServeCore\GameServer.cs:Zeile 80. bei System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) bei System.Threading.ThreadHelper.ThreadStart() InnerException: System.Collections.Generic.KeyNotFoundException HResult=-2146232969 Message=Der angegebene Schlüssel war nicht im Wörterbuch angegeben. Source=mscorlib StackTrace: bei System.Collections.Generic.Dictionary`2.get_Item(TKey key) bei MCServeCore.Components.ServerProperties..ctor() in c:\Users\Lars\Documents\Visual Studio 2012\Projects\MCServe\MCServeCore\Components\ServerProperties.cs:Zeile 59. bei MCServeCore.ServerData..cctor() in c:\Users\Lars\Documents\Visual Studio 2012\Projects\MCServe\MCServeCore\ServerData.cs:Zeile 33. InnerException:
Ich bin echt froh über jede Hilfe .
MfG Xe77a
Comment