2016-07-21 17 views
0

Wie kann ich den ConfigurationManager.OpenExeConfiguration() in einem Web-ASP-Projekt verwenden?Die OpenExeConfiguration-Methode überschreiben

Ich kann die Methode nicht ändern, die verwendet wird, um die Konfigurationsinformationen zu erhalten, da es Teil einer kompilierten DLL im SDK eines anderen Benutzers ist. Es gibt keine Möglichkeit für mich, es zu ändern.

Fehler Ich bekomme ist;

System.ArgumentException exePath muss angegeben werden, wenn es nicht in einer eigenständigen Exe ausgeführt wird. bei System.Configuration.ConfigurationManager.OpenExeConfigurationImpl (ConfigurationFileMap FileMap, Boolean isMachine, ConfigurationUserLevel Userlevel, String ExePath, Boolean preLoad) bei system.Configuration.ConfigurationManager.OpenExeConfiguration (ConfigurationUserLevel Userlevel)

Ich habe versucht, es zu lösen durch die Zugabe von folgende Zeile;

AppDomain.CurrentDomain.SetData("APP_CONFIG_FILE", @"\\PathTo\Web.config"); 

Aber es löst das Problem nicht.

Meine nächste Wette ist es, irgendwie die ConfigurationManager.OpenExeConfiguration() Methode zu überschreiben, wie es heißt, sollte es stattdessen die ConfigurationManager.OpenWebConfiguration() aufrufen, die die Web-Version der gleichen Methode ist.

Kann mir jemand Router, wie dies zu erreichen?

Vielen Dank im fortgeschrittenen, -Aron

Antwort

1

Um sicherzustellen, dass ich verstehe: der Aufruf an OpenExeConfiguration in der kompilierten DLL ist und Sie müssen es außer Kraft zu setzen, so dass es anders verhält?

Sie können nicht. Es erscheint merkwürdig, dass jemand eine Bibliothek kompiliert, die nur in einer Nicht-Web-Umgebung funktionieren kann, es sei denn, sie hätten die Möglichkeit ausgeschlossen, sie auf andere Weise zu verwenden.

Es ist ein langer Schuss, aber Sie könnten versuchen, es mit JetBrains dotPeek zu dekompilieren. Es kann ein neues Visual Studio-Projekt exportieren, das Sie bearbeiten und neu kompilieren können. Ich musste das manchmal tun, wenn ich entweder keinen Quellcode hatte oder nicht sicher war, ob es der richtige Quellcode war.

Während des Dekompilierens und Durchsuchens finden Sie vielleicht sogar eine andere Möglichkeit, Konfigurationseinstellungen zu laden.

+0

Danke @ScottHannen für Ihre erklärende Antwort. Ich habe tatsächlich genau diese Software und Lösung ausprobiert, aber ich bin in fünf weitere Probleme gelaufen, also wollte ich noch einmal überprüfen, ob das meine einzige mögliche Route ist. Mit genügend Zeit und Geduld werde ich mich kümmern, aber lass uns sehen, ob jemand etwas anderes vorhat. Sonst hast du es verdient! –

Verwandte Themen