app.config 控制器和写入器
app.config controler and writer
我需要 app.config 控制和写作方面的帮助。我有乳胶项目。而且我需要编写配置来更改我的 PDF 的章节。例如我有 3 章,但我现在不需要 2 章。所以我想 \include
在我的 main tex
中只有 \include chap1
和 \include chap3
。我有 app.config.
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="\include" value="chap1" />
<add key="\include" value="chap2" />
<add key="\include" value="chap3" />
</appSettings>
</configuration>
我可以通过什么方式来控制和使用这个配置。有可能吗?
谢谢。
app.config 只是一个 XML 文件...因此,要快速轻松地解决简单的配置文件,只需将其视为:
using System.Xml.Linq;
// Create a list just in case you want to remove specific elements later
List<XElement> toRemove = new List<XElement>();
// Load the config file
XDocument doc = XDocument.Load("app.config");
// Get the appSettings element as a parent
XContainer appSettings = doc.Element("configuration").Element("appSettings");
// step through the "add" elements
foreach (XElement xe in appSettings.Elements("add"))
{
// Get the values
string addKey = xe.Attribute("key").Value;
string addValue = xe.Attribute("value").Value;
// if you want to remove it...
if (addValue == "something")
{
// you can't remove it directly in the foreach loop since it breaks the enumerable
// add it to a list and do it later
toRemove.Add(xe);
}
}
// Remove the elements you've selected
foreach (XElement xe in toRemove)
{
xe.Remove();
}
// Add any new Elements that you want
appSettings.Add(new XElement("add",
new XAttribute("key", "\inculde"),
new XAttribute("value", "chapX")));
如果您确切地知道自己想要做什么,您可能会使用更有针对性的解决方案。
但是,对于您的场景,您可能希望将此添加元素加载到集合中,根据需要处理它们(add/remove/update 等...)然后将它们再次写回 "add" .config 文件中的元素。
我需要 app.config 控制和写作方面的帮助。我有乳胶项目。而且我需要编写配置来更改我的 PDF 的章节。例如我有 3 章,但我现在不需要 2 章。所以我想 \include
在我的 main tex
中只有 \include chap1
和 \include chap3
。我有 app.config.
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="\include" value="chap1" />
<add key="\include" value="chap2" />
<add key="\include" value="chap3" />
</appSettings>
</configuration>
我可以通过什么方式来控制和使用这个配置。有可能吗?
谢谢。
app.config 只是一个 XML 文件...因此,要快速轻松地解决简单的配置文件,只需将其视为:
using System.Xml.Linq;
// Create a list just in case you want to remove specific elements later
List<XElement> toRemove = new List<XElement>();
// Load the config file
XDocument doc = XDocument.Load("app.config");
// Get the appSettings element as a parent
XContainer appSettings = doc.Element("configuration").Element("appSettings");
// step through the "add" elements
foreach (XElement xe in appSettings.Elements("add"))
{
// Get the values
string addKey = xe.Attribute("key").Value;
string addValue = xe.Attribute("value").Value;
// if you want to remove it...
if (addValue == "something")
{
// you can't remove it directly in the foreach loop since it breaks the enumerable
// add it to a list and do it later
toRemove.Add(xe);
}
}
// Remove the elements you've selected
foreach (XElement xe in toRemove)
{
xe.Remove();
}
// Add any new Elements that you want
appSettings.Add(new XElement("add",
new XAttribute("key", "\inculde"),
new XAttribute("value", "chapX")));
如果您确切地知道自己想要做什么,您可能会使用更有针对性的解决方案。
但是,对于您的场景,您可能希望将此添加元素加载到集合中,根据需要处理它们(add/remove/update 等...)然后将它们再次写回 "add" .config 文件中的元素。