在应用程序运行时启动进程并更新配置文件。

时间:2013-02-05 15:02:41

标签: c# .net

在我的应用程序中,我使用以下代码

通过app.config启动我的代码
Process proc = Process.Start(@"c:\windows\system32\notepad.exe");

我必须在运行它时更改app.config文件两到三次。 我想知道如何做到这一点,所以我不需要停止并更改app.config文件,而不是重新启动该过程。

我在下一篇文章中看到了以下代码。

// Load the app.config file
XmlDocument xml = new XmlDocument();
xml.Load(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile);

// Do whatever you need, like modifying the appSettings section

// Save the new setting
xml.Save(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile);

我想知道最后一行是否保存了在进程仍在运行时正在进行的新设置?还是需要重新启动流程?我的目标是不需要继续重新启动过程。谢谢

2 个答案:

答案 0 :(得分:0)

因此,在WCF中,app.config的目的是为管理员提供对服务进行更改的能力,而无需重新编译代码(他们通常不知道如何,或者有工具要做)。如果您正在编写代码,则没有理由需要更改app.config文件,因为您是程序作者。

请记住,如果您只是尝试在不同的地址(绑定或有什么)重新托管,那么只需关闭服务并在代码中重新启动它,la:

WCF Self Host Service - Endpoints in C#

希望这有帮助

答案 1 :(得分:0)

如果您不想重新启动子进程,则需要使用进程间通信(IPC)技术来通知子进程它需要刷新它的app.config。你如何做到这一点取决于你的应用程序的规模以及你将从IPC链接中获得多少用途。

请参阅this SO post,讨论最简单的在C#中使用IPC的问题。和this post代码,您需要在子进程中调用以更新它的app.config

修改

我找到了一篇更好的帖子来解释additional options for inter-process communication