如何在相同的解决方案中从我的WCF服务访问另一个项目连接字符串

时间:2013-05-29 04:49:49

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

我的应用程序和WCF服务在同一个解决方案中。 我在类(在App中)编写了一个属性,以从App的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();

2 个答案:

答案 0 :(得分:0)

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

如果你坚持搞乱魔鬼,请使用类似的东西(根据你的需要改变):

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;

答案 1 :(得分:0)

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

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

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