是否可以通过C#中的插件或应用程序重用现有流程?

是否可以通过C#中的插件或应用程序重用现有流程?,c#,.net,plugins,C#,.net,Plugins,我有一个现有的计划,我必须解决。它提供了一个相当不错的插件架构,但我遇到了一个问题。我需要创建一个命令行插件来检查程序是否已经在运行,然后将命令行参数传递给现有实例 这是否可能使用插件?在这种情况下,最佳做法是使用消息传递系统吗?对于您描述的场景,我使用了通过net.pipe协议托管的WCF服务。基本上,我有一个契约,它定义了一个端点,该端点可以接收作为命令行参数提供的信息 当您的流程启动时,它首先尝试联系此服务。如果服务可用,则意味着现有进程已启动并正在运行。在这种情况下,打开进程的通道,将数

我有一个现有的计划,我必须解决。它提供了一个相当不错的插件架构,但我遇到了一个问题。我需要创建一个命令行插件来检查程序是否已经在运行,然后将命令行参数传递给现有实例


这是否可能使用插件?在这种情况下,最佳做法是使用消息传递系统吗?

对于您描述的场景,我使用了通过net.pipe协议托管的WCF服务。基本上,我有一个契约,它定义了一个端点,该端点可以接收作为命令行参数提供的信息


当您的流程启动时,它首先尝试联系此服务。如果服务可用,则意味着现有进程已启动并正在运行。在这种情况下,打开进程的通道,将数据发送给它,然后退出。如果该服务不可用,请启动该服务。

您可以提供您已经拥有的,或者您正在使用的程序的插件体系结构的一些信息吗?插件体系结构是相当开放的。它使用一系列接口来确定您正在开发哪种插件。这些接口基本上为您提供了SetupPlugin(PluginArgs)和TeardownPlugin()来初始化(传递程序的形式和一些其他信息)和销毁插件。PluginArgs为您提供了访问程序本身所需的一切;SetupPlugin允许你做任何你想做的事情。让我确保我理解正确:我会创建一个插件来启动服务并开始监听。该插件将响应给定的命令,根据需要操纵现有程序。我还将创建另一个插件,或者在该插件中添加一个命令行部分(避免在不必要时初始化整个程序),该部分将尝试联系服务并向其发送一组有效的参数。对不起,如果我只是重复一遍——我对这件事还不太熟悉,并试图确定我脑子里已经有了需要做的事情。这听起来对我来说是对的。如果你能提供更多的细节,我也可以。我已经在上面的评论中提供了一些细节,回应了Cashley。再补充几点:我正在尝试组合一个自定义的应用程序URI,允许用户单击web链接,将相关程序打开到特定点。我想直接这样做,但该程序似乎不支持没有插件的单实例设置或命令行参数。@Dan,我正在尝试做类似的事情。但是我不知道如何通过net.pipe协议托管WCF服务。我想定义一个契约,该契约定义一个可以从流程接收信息的端点。当流程启动时,它必须联系此服务并提供我需要的信息。你能为我提供一个代码框架来完成这个任务吗?我觉得您可能已经完成了我想要的工作。@Anee这里有一个链接,指向一些具有net.pipe服务的代码: