互操作 - 是否从托管调用本机,反之亦然

时间:2014-07-18 22:45:38

标签: c# .net wpf c++-cli interop

我一直在阅读使用C ++ CLI的本机托管互操作,我知道可以通过两种方式进行互操作 - 您可以从本机代码调用托管程序集,也可以从托管调用本机(混合)程序集。

我的问题是 - 是否有任何指导方针/经验法则选择互操作方向,即决定是否从托管调用本机,反之亦然。或者它与我互操作的方式没有区别?

在我的情况下,我有本机代码,可以进行大量的数据处理和实时通信。这必须与看起来整洁的WPF GUI一起工作。我可以使用我的本机代码调用WPF功能,或者将纯C#WPF前端调用到本机后端。我还有一个必须在WPF中托管的View,但其内容需要定期从本机代码更新。

1 个答案:

答案 0 :(得分:1)

通常,从长远来看,通常更容易将UI调用到“逻辑”代码中,在这种情况下,这意味着托管应用程序会调用本机代码。

两个“层”最终都与您在该技术中执行整个应用程序的情况相同,因此两者都不会变得奇怪。一旦您开始尝试从非基于UI的本机代码中创建托管UI,您最终必须跳过箍以使事情按预期工作。

因此,我建议制作一个WPF应用程序,并根据需要调用您的数据处理和通信。