2009-05-20 41 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。配置。
相关问题