我的应用程序和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();
答案 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文件添加到项目中的某个其他文件目录中。