【问题标题】:Override config file location for .NET class library?覆盖.NET 类库的配置文件位置?
【发布时间】:2010-07-06 22:55:49
【问题描述】:

我有一个类库,我想从我的 .NET 应用程序中调用它,并通过 COM 公开并从例如 excel 中调用。

这个类库需要从配置文件中获取一些值。当从我的 .NET 应用程序引用时,我当然可以将它需要的东西放在 app.config 中。但是从excel调用时我不能这样做。

从excel调用时有没有办法覆盖配置文件的位置?

【问题讨论】:

    标签: .net configuration-files


    【解决方案1】:

    不完全是。你可以做的是使用 ConfigurationManager.OpenExeConfiguration 打开一个特定的配置文件,并从那里读取配置设置。

    但是,这是一个很好的例子,说明为什么类库直接引用应用程序配置不是一个好主意:类库旨在跨应用程序重用,并且不同的应用程序可能有不同的方式来指定配置选项。这不仅仅适用于 Excel。

    相反,您应该设计您的库,以便控制其行为所需的任何选项都可以设置为属性或作为方法参数传入,以更适合该选项和 API 样式的为准。

    【讨论】:

    • 好点,通常我会完全同意他们。在这种情况下,尽管类库实际上只是 Web 服务的一个薄包装器。我们使用这个 dll 的目标是,当人们从 Excel 中添加对它的引用时,他们不必担心设置 Web 服务的 URL 或用户名\密码。这一切都只是嵌入在某个地方的 .config 文件中,可能是加密的。
    【解决方案2】:

    如果您正在使用应用程序设置并希望控制它们的保存/加载位置,this answer 会提供有关如何执行此操作的信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-11-29
      • 2019-07-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多