【问题标题】:C# linq to sql access app.config fileC# linq to sql 访问 app.config 文件
【发布时间】:2013-06-19 18:13:32
【问题描述】:

当 C# 2010 windows 窗体应用程序更改为 dll 并由其他应用程序访问时,我遇到了 linq to sql 问题。将代码作为 dll 调用的目的是出于性能原因并在多个应用程序之间共享代码。

当应用程序独立运行时,它运行良好。

基本上,当 linq to sql 被拖到桌面时,.net 框架会设置默认的 linq to sql 连接。但是我将 *.designer.cs 更改为使用 system.configuration 命名空间, 添加了对 system.configuration 命名空间的引用,并将默认的 linq to sql 连接更改为使用 app.config 文件中获得的数据库连接。我还在每个项目文件夹的“属性”或“设置”部分中删除了对默认数据库连接的所有引用。

现在的问题是 .net 框架重置了数据库的默认设置值。我们不再使用 app.config 文件中的值。

您能否向我展示代码、指向我的参考和/或告诉我如何使此应用程序再次成为 app.config 文件中的连接字符串值?

【问题讨论】:

    标签: c# visual-studio-2010 linq-to-sql app-config


    【解决方案1】:

    DLL 在调用它的应用程序的上下文中运行。它本身不是一个应用程序,所以给它一个 app.config 文件是没有用的。 dll 使用的配置设置由调用应用程序的 .config 文件(它可以是 app.config 文件或 web.config 文件)提供。在您的情况下,任何使用 dll 的应用程序都必须将数据库连接定义为自己的 .config 文件。

    【讨论】:

    • 调用 dll 的应用程序有自己的 app.config 文件。但是调用应用程序没有将其值传递给被调用的 dll。有没有办法调用程序可以将配置文件设置传递给 dll?如果是这样,您能否向我展示代码和/或指向我展示如何将数据库连接传递给 dll 的代码?
    • 这就是它的设计工作方式。 app.config 是否被重命名为应用程序的名称并复制到 bin 目录?
    • 这是目前发生的情况: 1. 调用程序有自己的 app.config,该配置文件保留在其原始位置。 2.被调用的程序有4个app配置文件,这些app.config文件保留在原来的位置。解决方案的每个项目项目文件(共 4 个)都有一个 app.config 文件。 3.你是否保存我应该重命名4个app.config文件中的每一个并将它们放入bin目录中以访问dll?你能给我更多的指示吗?
    • 为了让配置文件能够读取它:a) 需要位于 exe 和 dll 所在的 bin 目录中,并且 b) 需要与 exe + .config 同名。因此,如果您的应用程序名为 someapp.exe,则配置文件应命名为 someapp.exe.config。如果这没有自动发生,请添加一个构建后事件,以适当地复制和重命名 app.config。
    • 你能给我看一些用于重命名 4 个 app.config 文件的 postbuild 事件的代码吗?调用的主程序如何知道要使用哪个 app.config 文件?在 C# 代码中,你能告诉我调用程序如何访问它需要的相应 app.config 文件的代码吗?
    猜你喜欢
    • 2012-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-10
    • 1970-01-01
    相关资源
    最近更新 更多