2009-05-20 11 views
2

私は.NETライブラリで作業しています。もちろん、.NETは設定作業の良い方法を持っているので、app.configに入れるべきことをライブラリユーザに伝えることができます。COMベースのライブラリを初期化するための "標準的な"方法は何ですか?

しかし、レガシーサポートのために、ライブラリをCOMオブジェクトとして公開する必要もあります。ライブラリの一部のユーザーは、app.configの概念を持たないVB6アプリケーションになります。

OpenExeConfigurationを使って名前を付けてファイルを "見せかける"ことができますが、それは他の問題を引き起こします。

COMベースのライブラリを初期化する一般的な方法はありますか?最悪のケースでは、初期化メソッドを公開することができます。初期化メソッドはすべて個別のパラメータとして使用されますが、APIインターフェイスを解除する結果、新しい初期化パラメータを追加することが難しくなる恐れがあります。

私は、キー、値のペアの配列のようなものを渡すことを考えていると思いますが、これを行う前に、私が考慮していない「標準的な」方法がありますか?

答えて

3

おはよう、あなたの前提を確認してください。

app.configは、VB6がexeで使用されているかどうかとは関係ありません。 app.exe.configは.NETの規約です。 .NETコードがexeにロードされると、.config内で設定が検索されます。 exeを作成するためにVB6が使用されたかどうかは関係ありません。

たとえば、.NETでCOMコンポーネントを作成し、dllhost.exeでホストすると、.NETロジックはdllhostと同じdirにあるdllhost.exe.configというファイルからその構成を読み取ります.exe(通常は%windir%\ system32)です。 dllhost.exeバイナリが.configファイルを知らないという事実は無関係です。

それ以外にも、initにキーと値のペアを使用する計画は良いです。使いやすく、柔軟性があり、拡張性があります。 Initファイルが必要に応じて上書きされるようにするには、設定ファイルとInit()メソッドの両方を実行することができます。多くの場合、.configファイルは管理者だけがアクセスでき、変更することはできません。したがって、.exe.configの外でユーザーが定義可能な設定を提供するために何らかの方法が必要な場合があります。また

参照:質問はデバッグ時に実行するときにアプリ-name.exeを必要とするのに対し、あなたは、あなたの設定ファイル用のvb6.exe.config使用する必要があると指摘していることをからHow can I debug a VB6 project that has a .NET interop component?

  • の答え。 config。
関連する問題