Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否有可能在.NET(C#)中从头开始以编程方式创建*.config文件?_C#_.net_App Config - Fatal编程技术网

是否有可能在.NET(C#)中从头开始以编程方式创建*.config文件?

是否有可能在.NET(C#)中从头开始以编程方式创建*.config文件?,c#,.net,app-config,C#,.net,App Config,对于我们的方法,我们希望从头创建一个*.config文件,并在运行时使用一些默认/自定义值填充它 有没有可能通过ConfigurationManager或类似的程序来实现这一点?由于.config文件只是XML,您应该能够使用XmlTextWriter来构建配置文件。当然,这是一个简单明了的XML文件 现在。。。你在写什么config文件应用程序配置web.config自定义.config 前两个是对windows应用程序和web应用程序的配置支持,因此您需要从“外部”应用程序生成应用程序,然后

对于我们的方法,我们希望从头创建一个*.config文件,并在运行时使用一些默认/自定义值填充它


有没有可能通过ConfigurationManager或类似的程序来实现这一点?

由于.config文件只是XML,您应该能够使用
XmlTextWriter
来构建配置文件。

当然,这是一个简单明了的XML文件

现在。。。你在写什么
config
文件<代码>应用程序配置<代码>web.config<代码>自定义.config


前两个是对windows应用程序和web应用程序的配置支持,因此您需要从“外部”应用程序生成应用程序,然后启动该应用程序(安装项目中已经发生了这种情况,安装项目要求用户提供信息,您可以编辑/添加配置文件,如数据库连接等)是的。正如您所指出的,
ConfigurationManager
类允许您读取和写入配置文件

向下滚动一点

当然,您可以将这些文件作为XML文件读/写,但是上面的类公开了一个更方便的用于操作配置文件的接口

要诱使
ConfigurationManager
打开任意命名的配置文件,可以[ab?]使用
ExeConfigurationFileMap
。请注意,
文件
可能不存在,在这种情况下,当您调用
Save()


它应该是app.config。我不想使用任何“外部”应用程序。你可以设置一个安装窗口并写入它,它不受保护,然后要求重新启动(或自动重新启动应用程序),以便它可以重新加载所有新内容。虽然如果只是一次更改,我会使用设置,但您是否没有提到要添加/更改的内容:是 啊这是有道理的。看看人们是否有更顺畅的方法,如果没有,他们会接受这个答案。谢谢@Andrey-这个答案肯定应该用于创建初始文件,然后再使用
ConfigurationManager
类-但是,为什么不按照现在的定义使用它呢?有什么目的吗?事实上,我的项目中的其他开发人员问我这个问题,所以我不知道他们为什么需要这样麻烦的方法。也许,我必须找到答案。@Kyle Rozendo,你可以用
ConfigurationManager
创建一个配置。我编辑了接受的答案,以说明doneI不知道这是怎么回事。这是我为什么每天浏览stackoverflow的一个例子。事实上,在我看来,它不允许我最初保存文件。它允许我打开现有配置并对其进行更改,然后保存。看来用file/XML Writer创建文件的主意不错。好的,ConfigurationManager确实很适合处理现有的配置文件,但我们必须用XMLTextWriter创建它,正如在其他回答中提到的那样。@Kyle Rozendo,您可以使用
ConfigurationManager
创建配置。我编辑了这个答案,以显示它是如何完成的。对于我来说,它将仅使用此代码而不是config.Save()创建文件:如果(!fileExists){config.Save(ConfigurationSaveMode.Minimal,true);}
ExeConfigurationFileMap fileMap = new ExeConfigurationFileMap
{
    ExeConfigFilename = file
};
var config = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None);
//todo manipulate config. add settings / connection strings etc.
config.Save();