【发布时间】:2010-07-06 22:55:49
【问题描述】:
我有一个类库,我想从我的 .NET 应用程序中调用它,并通过 COM 公开并从例如 excel 中调用。
这个类库需要从配置文件中获取一些值。当从我的 .NET 应用程序引用时,我当然可以将它需要的东西放在 app.config 中。但是从excel调用时我不能这样做。
从excel调用时有没有办法覆盖配置文件的位置?
【问题讨论】:
我有一个类库,我想从我的 .NET 应用程序中调用它,并通过 COM 公开并从例如 excel 中调用。
这个类库需要从配置文件中获取一些值。当从我的 .NET 应用程序引用时,我当然可以将它需要的东西放在 app.config 中。但是从excel调用时我不能这样做。
从excel调用时有没有办法覆盖配置文件的位置?
【问题讨论】:
不完全是。你可以做的是使用 ConfigurationManager.OpenExeConfiguration 打开一个特定的配置文件,并从那里读取配置设置。
但是,这是一个很好的例子,说明为什么类库直接引用应用程序配置不是一个好主意:类库旨在跨应用程序重用,并且不同的应用程序可能有不同的方式来指定配置选项。这不仅仅适用于 Excel。
相反,您应该设计您的库,以便控制其行为所需的任何选项都可以设置为属性或作为方法参数传入,以更适合该选项和 API 样式的为准。
【讨论】:
如果您正在使用应用程序设置并希望控制它们的保存/加载位置,this answer 会提供有关如何执行此操作的信息。
【讨论】: