我一直在研究.NET库。当然,.NET有一种很好的配置方式,因此我可以向库用户提供他们应该在app.config中添加的内容。
但是,我还要将库作为COM对象公开,以获得遗留支持。该库的一些用户将是VB6应用程序,它没有app.config概念。
我知道我可以使用OpenExeConfiguration“命名”文件以及命名,但这会导致其他问题。
是否有一种初始化基于COM的库的常用方法?最糟糕的情况是,我可以公开一个初始化方法,它将所有初始化参数作为单独的参数,但我担心这会使添加新的初始化参数变得困难,因为它会导致破坏API接口。
我想我正在考虑传递类似于数组键值对的东西,但在我这样做之前,是否有一种我不考虑的“标准”方式?
答案 0 :(得分: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?