这是我在StackOverflow上的第一篇文章,所以请耐心等待我:)
我正在寻找一种方法将值传递给已经运行的应用程序。应用程序应该能够接受此值并在其生命周期中将其用于进一步操作。我不想注销/重启应用程序以使用更新的值。
场景将是这样的:
应用程序使用MachineName在实例化时初始化并填充某些对象。一旦它启动并运行,我想将一个不同的工作站名称传递给应用程序(可能来自命令行),应用程序应该能够使用此MachineName并进一步使用它。我不介意我是否再次执行相同的操作来初始化具有新MachineName名称的所需对象。
有问题的应用程序是一个带有C#的WPF应用程序。它也使用了一些WCF服务。我正在考虑使用通用的注册表项来存储工作站名称,并且需要在应用程序中使用/更新此注册表项。所以它应该是第一个接触点。但我不确定这是否是一种更好的方法。有什么想法吗?
答案 0 :(得分:1)
使用FileSystemWatcher
在磁盘上观看文件非常简单。当您的应用获得更改通知时,请重新阅读该文件的内容并更新您的应用状态。
答案 1 :(得分:0)
应用程序在启动时侦听套接字端口或监视共享文件,如果使用参数再次调用应用程序,只需打开套接字端口或将命令写入文件,第一个应用程序可以执行以下操作:初始化。
答案 2 :(得分:0)
首先,我认为你可能会使事情过于复杂化。如果你需要做的只是给你的应用程序一个新的字符串“MachineName”,那么你有几个选项(这当然不是你所有的选择,只需要考虑一些):
我不知道你的全部要求,但我可能会为1和2设置它,这会给你一点灵活性。