我正在为 MacOS 和 iOS 编写一个应用程序,它使用 NetworkExtension 来提供一些 VPN 功能。它是用 C# 编写的 Xamarin.Forms 应用程序,NetworkExtension 也是用 C# 编写的。这在 MacOS 上按预期工作,但在 iOS 中,我们达到了 15MB 内存限制并且扩展被终止。从扩展中剥离了所有可能的额外 C# 依赖项以保持其内存占用较小,我们最终仍会达到该限制。
我的假设是,包括 C# 运行时本身会占用大量内存。为了避免这种情况并尽可能精简扩展,我计划在 Objective-C 中重新实现它。那么问题是如何将 C# 应用程序与 Objective-C NetworkExtension 捆绑在一起?据我所知,VisualStudio 不允许我简单地将 Objective-C 项目添加到 C# 解决方案中。还有另一种方法可以做到这一点吗?