2009-05-20 87 views
2

我一直在研究.NET庫。當然,.NET有一種處理配置的好方法,因此我可以向圖書館用戶記錄他們應該放在app.config中的內容。初始化基於COM庫的「標準」方式是什麼

不過,我也將庫作爲一個COM對象公開,用於遺留支持。該庫的一些用戶將是VB6應用程序,它沒有app.config概念。

我知道我可以使用OpenExeConfiguration以及命名來「模糊」文件,但這會導致我遇到其他問題。

是否有一種常用的方法來初始化基於COM的庫?最糟糕的情況是,我可以公開一個初始化方法,它將所有的初始化參數作爲單獨的參數,但是我擔心這會使添加新的初始化參數變得困難,因爲它會導致API接口崩潰。

我想我想傳遞的東西像一個鍵,值對的數組,但在我這樣做之前,有沒有我不考慮的「標準」方式?

回答

3

嗯,檢查你的假設。

app.config與是否在exe中使用VB6無關。 app.exe.config是一個.NET約定。當.NET代碼加載到一個exe文件中時,它會在.config中查找配置設置。使用VB6創建exe文件並不重要。例如,如果您在.NET中構建COM組件,然後將其託管在dllhost.exe中,則.NET邏輯將從名爲dllhost.exe.config的文件讀取其配置,該文件位於與dllhost相同的目錄中.exe(通常是%windir%\ system32)。事實上,dllhost.exe二進制文件不知道.config文件是無​​關緊要的。

除此之外,您計劃在init中使用鍵/值對是很好的。它易於使用,靈活,可擴展。您可能希望同時執行配置文件和Init()方法,以允許Init在必要時覆蓋事物。在許多情況下,.config文件僅供管理員訪問,並且不可更改。因此,您可能需要某種方式在.exe.config之外提供用戶可定義的設置。

參見:How can I debug a VB6 project that has a .NET interop component?

  • 解答問題指出,在調試時,你應該使用vb6.exe.config爲您的配置文件,而運行時,你需要的應用程序,name.exe。配置。