在我的应用程序中,我使用以下代码
通过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);
我想知道最后一行是否保存了在进程仍在运行时正在进行的新设置?还是需要重新启动流程?我的目标是不需要继续重新启动过程。谢谢
答案 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。