.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天前
|
设计模式 开发框架 JavaScript
基于.NET8 + Vue/UniApp前后端分离的快速开发框架,开箱即用!
基于.NET8 + Vue/UniApp前后端分离的快速开发框架,开箱即用!
|
1月前
|
XML JSON API
ServiceStack:不仅仅是一个高性能Web API和微服务框架,更是一站式解决方案——深入解析其多协议支持及简便开发流程,带您体验前所未有的.NET开发效率革命
【10月更文挑战第9天】ServiceStack 是一个高性能的 Web API 和微服务框架,支持 JSON、XML、CSV 等多种数据格式。它简化了 .NET 应用的开发流程,提供了直观的 RESTful 服务构建方式。ServiceStack 支持高并发请求和复杂业务逻辑,安装简单,通过 NuGet 包管理器即可快速集成。示例代码展示了如何创建一个返回当前日期的简单服务,包括定义请求和响应 DTO、实现服务逻辑、配置路由和宿主。ServiceStack 还支持 WebSocket、SignalR 等实时通信协议,具备自动验证、自动过滤器等丰富功能,适合快速搭建高性能、可扩展的服务端应用。
101 3
|
5天前
|
消息中间件 监控 数据可视化
基于.NET开源、功能强大且灵活的工作流引擎框架
基于.NET开源、功能强大且灵活的工作流引擎框架
|
5天前
|
开发框架 网络协议 .NET
C#/.NET/.NET Core优秀项目和框架2024年10月简报
C#/.NET/.NET Core优秀项目和框架2024年10月简报
|
5天前
|
网络协议 Unix Linux
精选2款C#/.NET开源且功能强大的网络通信框架
精选2款C#/.NET开源且功能强大的网络通信框架
|
5天前
|
开发框架 JavaScript 前端开发
2024年全面且功能强大的.NET快速开发框架推荐,效率提升利器!
2024年全面且功能强大的.NET快速开发框架推荐,效率提升利器!
|
5天前
|
网络协议 网络安全 Apache
一个整合性、功能丰富的.NET网络通信框架
一个整合性、功能丰富的.NET网络通信框架
|
1月前
|
开发框架 前端开发 API
C#/.NET/.NET Core优秀项目和框架2024年9月简报
C#/.NET/.NET Core优秀项目和框架2024年9月简报
|
1月前
|
Linux C# Android开发
.NET开源跨平台桌面和移动应用的统一框架 - Eto.Forms
.NET开源跨平台桌面和移动应用的统一框架 - Eto.Forms
133 1
|
1月前
|
开发框架 JavaScript 前端开发
一个适用于 ASP.NET Core 的轻量级插件框架
一个适用于 ASP.NET Core 的轻量级插件框架