2016-07-21 9 views
0

Web ASPプロジェクトでConfigurationManager.OpenExeConfiguration()を使用するにはどうすればよいですか?OpenExeConfigurationメソッドをオーバーライド

他の誰かのSDKのコンパイル済みDLLの一部であるため、設定情報の取得方法を変更できません。それを変更する方法はありません。

エラーです。

System.ArgumentExceptionスタンドアロンexeファイル内で実行していない場合は、exePathを指定する必要があります。 system.Configuration.ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevelユーザレベル)

でSystem.Configuration.ConfigurationManager.OpenExeConfigurationImpl(ConfigurationFileMap FILEMAP、ブールisMachine、ConfigurationUserLevelユーザレベル、文字列exePath、ブールプリロード) で私は追加して、それを解決しようとしました次の行;

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

しかし、問題は解決しません。

私の次の賭けは、何とかConfigurationManager.OpenExeConfiguration()メソッドをオーバーライドして呼び出されるので、代わりに同じメソッドのWebバージョンであるConfigurationManager.OpenWebConfiguration()を呼び出す必要があります。

誰でも私にこれを達成する方法を教えてもらえますか?高度で

おかげで、 -Aron

答えて

1

は、私は理解しておいてくださいするには:OpenExeConfigurationへの呼び出しがコンパイルされた.dllであり、あなたはそれが異なった動作をするように、それを上書きする必要がありますか?

できません。それ以外の方法で使用する可能性を除外しない限り、誰かがWeb以外の環境でしか機能できないライブラリをコンパイルするのは奇妙に思えます。

これは長時間ですが、逆コンパイルをJetBrains dotPeekで試してみることもできます。編集や再コンパイルが可能な新しいVisual Studioプロジェクトを書き出すことができます。私は、ソースコードを持っていなかったり、適切なソースコードであるかどうかわからなかったりしたときにそれを行う必要がありました。

デコンパイルして見ていくうちに、別の方法で設定を読み込むことさえできます。

+0

ありがとうございます@ScottHannenあなたの説明的な答えです。 私は実際にこの正確なソフトウェアとソリューションを試しましたが、さらに5つの問題が発生したので、これが本当に唯一の可能なルートかどうか再確認したいと考えました。十分な時間と忍耐を持って、私は怒らせるでしょうが、誰か他の何かが出てくるかどうか見てみましょう。そうでなければあなたはそれにふさわしいでしょう! –

関連する問題