执行进程并获取调用者的界面

时间:2013-05-22 18:28:48

标签: c# interface process

如果我使用代码描述它会更好。我有以下界面:

public interface IMyInterface
{
    void DoSomething();
}

我有两个Windows Form应用程序,名为MyFirstApp和MySecondApp。两个应用程序都实现了IMyInterface接口。 MyFirstApp像这样调用MySecondApp:

var p = Process.Start("MySecondApp");

如果按预期工作,一切都会。现在我要做的是,在MySecondApp启动之后,我希望能够弄清楚它是如何启动的(在这种情况下,它是由MyFirstApp启动的),如果它是我的MyFirstApp启动的,我想能够获得对接口的引用并在MyFirstApp中调用DoSomething()。所以MySecondApp的伪代码看起来像这样:

if (this was started by MyFirstApp)
{
    IMyInterface firstApp = (IMyInterface)<handle to MyFirstApp>;
    firstApp.DoSomething();
}

我的问题是,如何在C#中执行此操作?

1 个答案:

答案 0 :(得分:0)

在这种情况下,您希望让一个应用程序管理另一个应用程序。您可以通过让托管应用程序托管一个简单的WCF服务来完成此操作,该服务具有&#34; ShutDown&#34;,&#34;配置&#34;,&#34; GetStatistics&#34;等等

根据管理范围的不同,您可以使用其中一个命名管道绑定(仅适用于单个计算机)或其中一个TCP绑定(您可能希望在Intranet中使用)或其中一个Http绑定,可以在Internet上使用。

所有这些情况都将使用完全相同的服务代码。

相关问题