.NET下各种IoC框架对Xamarin的支持程序

简介: .NET有的IoC框架比较有名的有Autofac,CastleWindsor,Spring.NET,NInject,Unity和StructureMap,Xamarin.Forms本身也提供一个简单的DI实现叫DependService类。本文介绍一下这几种IoC容器对Xamarin的支持情况。

在.NET的开发大环境中,IoC容器框架也有很多,其中较有名的有Autofac,CastleWindsor,Spring.NET,NInject,Unity和StructureMap。Xamarin是.NET下支持跨平台开发的一个很不错的中间件,使用它,.NET开发人员可以使用它开发Android应用,iOS应用及UWP应用,而不需要再去学习Java(Android开发)、Object-C/Swift(iOS开发)。可以很大程序的降低.NET开发人员开发移动应用的成本。
开发中可以使用已有的.NET的各种现成框架,如IoC容器框架,日志框架等等。但哪些框架适用于Xamarin呢,经过博主实践得出,各种框架的使用情况如下:
1、Autofac
可以完善的支持Xamarin,并且支持属性注入和构造函数注入。而且构造函数的值可以动态传入。而且官方也明确表示了支持Xamarin。
2、Castle Windsor
虽然官方没有明确表示,但经过博主实践,也是完美支持Xamarin的,但在构造函数注入时动态参数如果是null,会失败。所以必须给定一个参数对象的实例。
3、Spring.NET
Spring.NET从2011年后基本没有更新了,所以不适用Xamarin(.NET Standard)也很正常。所以它是完全不支持Xamarin的,并且由于Spring.NET完全借鉴了Java版的Spring框架,框架本身加入了大量的日志而引用了第三方库,就更加不支持Xamarin了。
4、NInject
NInject官方也没有表明支持Xamarin,但使用Xamarin建立的工程的UWP是可以运行的,但运行Android时,会在解析对象时报异常,TypeInitializationException。所以暂时认为它不支持Xamarin.Andriod和Xamarin.iOS,但支持Xamarin.UWP。
5、Unity
Unity微软也将源码托管到GitHub了,并且持续更新。它也完美支持Xamarin,虽然官方没有明确表示。
6、StructureMap
它的代码也托管到了GitHub,但从GitHub上看2.x版本后就不更新了(没有Release了),但是实际上从NuGet安装的时候还是在持续更新,最新版本是4.7.1,并且完美支持Xamarin。在动态构造函数参数传入为null时,会自动生成参数对象的实例。

根据上面的情况,如果对参数判断null时,在StructureMap下,可能还要多判断一层(对象的种属性),而Castle Windsor参数为null时根据不能构建出对象,实际需要自己new一个实例传进去,所以也需要在判断null时加入层次的判断。
根据自己的喜欢使用喜欢的框架吧。如果没有特喜欢的,建议使用Autofac和Unity,然后必须的情况下使用NInject和StructureMap。

目录
相关文章
|
5天前
|
监控 前端开发 API
一款基于 .NET MVC 框架开发、功能全面的MES系统
一款基于 .NET MVC 框架开发、功能全面的MES系统
|
24天前
|
消息中间件 开发框架 监控
NET任务调度框架Hangfire使用指南
Hangfire 是一个用于 .NET 应用程序的开源任务调度框架,支持长时间运行任务、定时任务等。通过简单的安装配置,即可将任务从主线程分离,提升应用性能。支持多种数据库,提供丰富的任务类型如立即执行、延迟执行和周期性任务,并有可视化管理界面 Hangfire Dashboard。还支持安全性配置及扩展插件,如 Hangfire.HttpJob,适合各种复杂场景下的任务调度需求。
48 1
NET任务调度框架Hangfire使用指南
|
28天前
|
算法 Java 测试技术
Benchmark.NET:让 C# 测试程序性能变得既酷又简单
Benchmark.NET是一款专为 .NET 平台设计的性能基准测试框架,它可以帮助你测量代码的执行时间、内存使用情况等性能指标。它就像是你代码的 "健身教练",帮助你找到瓶颈,优化性能,让你的应用跑得更快、更稳!希望这个小教程能让你在追求高性能的路上越走越远,享受编程带来的无限乐趣!
86 13
|
2月前
|
开发框架 安全 .NET
在数字化时代,.NET 技术凭借跨平台兼容性、丰富的开发工具和框架、高效的性能及强大的安全稳定性,成为软件开发的重要支柱
在数字化时代,.NET 技术凭借跨平台兼容性、丰富的开发工具和框架、高效的性能及强大的安全稳定性,成为软件开发的重要支柱。它不仅加速了应用开发进程,提升了开发质量和可靠性,还促进了创新和业务发展,培养了专业人才和技术社区,为软件开发和数字化转型做出了重要贡献。
34 5
|
2月前
|
传感器 人工智能 供应链
.NET开发技术在数字化时代的创新作用,从高效的开发环境、强大的性能表现、丰富的库和框架资源等方面揭示了其关键优势。
本文深入探讨了.NET开发技术在数字化时代的创新作用,从高效的开发环境、强大的性能表现、丰富的库和框架资源等方面揭示了其关键优势。通过企业级应用、Web应用及移动应用的创新案例,展示了.NET在各领域的广泛应用和巨大潜力。展望未来,.NET将与新兴技术深度融合,拓展跨平台开发,推动云原生应用发展,持续创新。
46 4
|
2月前
|
开发框架 .NET C#
.NET 技术凭借高效开发环境、强大框架支持及跨平台特性,在软件开发中占据重要地位
.NET 技术凭借高效开发环境、强大框架支持及跨平台特性,在软件开发中占据重要地位。从企业应用到电子商务,再到移动开发,.NET 均展现出卓越性能,助力开发者提升效率与项目质量,推动行业持续发展。
36 4
|
2月前
|
消息中间件 监控 数据可视化
基于.NET开源、功能强大且灵活的工作流引擎框架
基于.NET开源、功能强大且灵活的工作流引擎框架
|
2月前
|
开发框架 网络协议 .NET
C#/.NET/.NET Core优秀项目和框架2024年10月简报
C#/.NET/.NET Core优秀项目和框架2024年10月简报
|
2月前
|
网络协议 Unix Linux
精选2款C#/.NET开源且功能强大的网络通信框架
精选2款C#/.NET开源且功能强大的网络通信框架
|
2月前
|
开发框架 JavaScript 前端开发
2024年全面且功能强大的.NET快速开发框架推荐,效率提升利器!
2024年全面且功能强大的.NET快速开发框架推荐,效率提升利器!

热门文章

最新文章