C#如何动态修改app.config配置文件? 5
我的app.config配置文件是这样的:<?xmlversion="1.0"encoding="utf-8"?><configuration><configSectio...
我的app.config配置文件是这样的:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
</configSections>
<connectionStrings>
<add name="sql" connectionString="Data Source=localhost;Initial Catalog=eLib3;Integrated Security=false;uid=sa;pwd=123456"/>
</connectionStrings>
</configuration>
然后我想在程序启动的时候先要设置它的配置,才能继续往下操作
<add name="sql" connectionString="Data Source=localhost;Initial Catalog=eLib3;Integrated Security=false;uid=sa;pwd=123456"/>这条配置信息就会发生相应的改变。
具体是怎么实现的呢?在网上找了一大堆,但就是看不懂,不知道他那代码放到什么地方。我对xml文件操作不熟,请高手们给个详细的代码,最好有注释。小弟急着用!只有这点分了,希望大家帮帮忙。 展开
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
</configSections>
<connectionStrings>
<add name="sql" connectionString="Data Source=localhost;Initial Catalog=eLib3;Integrated Security=false;uid=sa;pwd=123456"/>
</connectionStrings>
</configuration>
然后我想在程序启动的时候先要设置它的配置,才能继续往下操作
<add name="sql" connectionString="Data Source=localhost;Initial Catalog=eLib3;Integrated Security=false;uid=sa;pwd=123456"/>这条配置信息就会发生相应的改变。
具体是怎么实现的呢?在网上找了一大堆,但就是看不懂,不知道他那代码放到什么地方。我对xml文件操作不熟,请高手们给个详细的代码,最好有注释。小弟急着用!只有这点分了,希望大家帮帮忙。 展开
3个回答
展开全部
string file = Server.MapPath(@"~\web.config");
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(file);
string s1 = "aaa";
string s2 = "bbb";
string h = "ccc";
string user = "ddd";
string pass = "eee";
XmlNodeList nodeList = null;
nodeList = xmlDoc.SelectSingleNode("configuration//connectionStrings").ChildNodes;
//遍历所有子节点
foreach (XmlNode xn in nodeList)
{
//将子节点类型转换为XmlElement类型
XmlElement xe = xn as XmlElement;
if (xe.Name == "add")
{
if (xe.GetAttribute("name") == "acountConnectionString")
{
xe.SetAttribute("connectionString", s1);
}
if (xe.GetAttribute("name") == "mailaddress")
{
xe.SetAttribute("connectionString", s2);
}
}
}
nodeList = xmlDoc.SelectSingleNode("configuration//system.net//mailSettings//smtp").ChildNodes;
foreach (XmlNode xn in nodeList)
{
//将子节点类型转换为XmlElement类型
XmlElement xe = xn as XmlElement;
if (xe.Name == "network")
{
xe.SetAttribute("host", h);
xe.SetAttribute("userName", user);
xe.SetAttribute("password", pass);
break;
}
}
xmlDoc.Save(file);
但实际上通过代码修改web.config的操作微乎其微
1. web.config的修改可能会导致session等服务器变量的丢失
2. 如果你的页面是发布在IIS下面,要通过页面修改web.config,必须给web.config这个文件添加 Network service (IIS6)或 ASPNET (IIS)用户的写权限,这在实际操作中是不可想象的
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(file);
string s1 = "aaa";
string s2 = "bbb";
string h = "ccc";
string user = "ddd";
string pass = "eee";
XmlNodeList nodeList = null;
nodeList = xmlDoc.SelectSingleNode("configuration//connectionStrings").ChildNodes;
//遍历所有子节点
foreach (XmlNode xn in nodeList)
{
//将子节点类型转换为XmlElement类型
XmlElement xe = xn as XmlElement;
if (xe.Name == "add")
{
if (xe.GetAttribute("name") == "acountConnectionString")
{
xe.SetAttribute("connectionString", s1);
}
if (xe.GetAttribute("name") == "mailaddress")
{
xe.SetAttribute("connectionString", s2);
}
}
}
nodeList = xmlDoc.SelectSingleNode("configuration//system.net//mailSettings//smtp").ChildNodes;
foreach (XmlNode xn in nodeList)
{
//将子节点类型转换为XmlElement类型
XmlElement xe = xn as XmlElement;
if (xe.Name == "network")
{
xe.SetAttribute("host", h);
xe.SetAttribute("userName", user);
xe.SetAttribute("password", pass);
break;
}
}
xmlDoc.Save(file);
但实际上通过代码修改web.config的操作微乎其微
1. web.config的修改可能会导致session等服务器变量的丢失
2. 如果你的页面是发布在IIS下面,要通过页面修改web.config,必须给web.config这个文件添加 Network service (IIS6)或 ASPNET (IIS)用户的写权限,这在实际操作中是不可想象的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-08-31
展开全部
你用动软代码生成器随便生成一个项目,里面就有修改配置文件的ConfigHelper,那个文件可以满足你的需求
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这是一个XML文件,编辑她就行了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询