如果我使用代码描述它会更好。我有以下界面:
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#中执行此操作?
答案 0 :(得分:0)
在这种情况下,您希望让一个应用程序管理另一个应用程序。您可以通过让托管应用程序托管一个简单的WCF服务来完成此操作,该服务具有&#34; ShutDown&#34;,&#34;配置&#34;,&#34; GetStatistics&#34;等等
根据管理范围的不同,您可以使用其中一个命名管道绑定(仅适用于单个计算机)或其中一个TCP绑定(您可能希望在Intranet中使用)或其中一个Http绑定,可以在Internet上使用。
所有这些情况都将使用完全相同的服务代码。