项目
版本

为什么我的 Xamarin 应用出现异常?

Autofac 针对.NET Framework 和.NET Standard。 这使得代码在多个平台之间具有相当的可移植性。它可用于 Mono、Xamarin 和通用 Windows 平台应用等。

Xamarin 提供了一个跨平台编译器,它能够将 C# 和 .NET 代码编译成原生应用。从文档中可以了解到:

在 iOS 上,Xamarin 的预编译器(AOT)会直接将 Xamarin.iOS 应用程序编译为 ARM 原生汇编代码。在 Android 上,Xamarin 的编译器会编译为中间语言(IL),然后在应用启动时即时编译为原生汇编。

其中的一个挑战是,并非所有最终平台(如 iOS 或 Android)都支持所有的 .NET 特性。例如,链接器可能会移除它认为未使用的类型,但实际上这些类型在反射和依赖注入中是必需的。这样做是为了加快应用速度并减小总体大小——移除不认为会被使用到的类型和方法。这种转换和优化可能会导致原本在 .NET 中运行正常的应用,在 Xamarin 编译后的原生应用中表现出略微不同的行为。

Autofac 并未特别针对 Xamarin 或.NET Native 应用进行构建或测试。 在针对 .NET Standard 的情况下,确保与其他 .NET Standard 代码兼容的任务就交给了跨平台编译器和链接器。

我们从社区收集了一些关于让 Xamarin 和 .NET Native 应用正常工作的提示。详细了解。希望这些能帮到你。如果你有其他可能帮助他人的提示或文章,请告诉我们,我们会很高兴将其加入。有时,在 Xamarin 中使用反射正确设置编译器和链接器指令可能会是一项挑战。

如果在查看了提示并做了研究后仍然遇到问题,请在 StackOverflow 上提问。 使用标签 xamarin,这样熟悉 Xamarin 的人就能收到通知并帮助回答问题:相关问题

在本文档中