【问题标题】:How to access another projects connection string from my WCF service in same solutions如何在相同的解决方案中从我的 WCF 服务访问另一个项目连接字符串
【发布时间】:2013-05-29 04:49:48
【问题描述】:

我的应用程序和 WCF 服务在同一个解决方案中。 我在一个类(在应用程序中)中编写了一个属性,以从应用程序的Web.Config 获取 ConnectionString。 现在需要在我的 WCF 服务中访问相同的连接字符串,但我的 WCF 服务中有另一个 Web.Config(所有绑定都已定义)。但是我需要访问app的连接字符串。

//This is the connection string of App, where I am retrieving it in a common class. 
public static readonly string ConnectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ToString();

【问题讨论】:

  • 您可以使用相同的名称访问它。Net 将在启动应用程序域的应用程序的配置文件中查找配置密钥。如果它不起作用,请添加系统参考。配置。
  • 我也试过这样做,但这里的问题是,我不会加载类(它有连接字符串)但我想要那个类的连接字符串,可能很愚蠢,但给我任何其他的替代品。
  • 将你的连接字符串添加到一个新类中,称之为 MyConfig

标签: c# wcf web-config connection-string


【解决方案1】:

您可以从另一个web.config 访问连接字符串。在 asp.net 项目中可以有两个 web.config 文件在不同的目录中。

注意:如果连接字符串具有相同的“名称”,则目录中的名称将覆盖根文件夹中的名称。

Namespace 添加到您的班级并按原样访问/读取 web.config 文件连接字符串。在此之前将相同的 Web.config 文件添加到项目中的其他文件目录中。

【讨论】:

    【解决方案2】:

    正确答案是“不要这样做,在边缘项目的配置中添加连接字符串”

    如果你坚持要和魔鬼混,就用类似的东西(根据你的需要改):

    var fileMap = new ConfigurationFileMap("configFilePath");
    var configuration = ConfigurationManager.OpenMappedMachineConfiguration(fileMap);
    var sectionGroup = configuration.GetSectionGroup("connectionStrings "); // This is the section group name, change to your needs
    var section = (ClientSettingsSection)sectionGroup.Sections.Get("MyTarget.Namespace.Properties.Settings"); // This is the section name, change to your needs
    var setting = section.Settings.Get("connectionStringKey "); // This is the setting name, change to your needs
    return setting.Value.ValueXml.InnerText;
    

    【讨论】:

      猜你喜欢
      • 2020-05-08
      • 1970-01-01
      • 2013-04-15
      • 1970-01-01
      • 2011-09-09
      • 2013-07-17
      • 1970-01-01
      • 1970-01-01
      • 2023-04-02
      相关资源
      最近更新 更多