在跨平台 (Xamarin) 应用程序中使用哪个 IoC 容器?

Which IoC continer to use in cross-platform (Xamarin) applications?

我正在为 Windows、OSX、iOS、Windows 移动设备、Android 和网络构建跨平台应用程序 ASP.NET。对于每个客户端,我都使用 C#(我使用的是 Xamarin)。单一 VS 解决方案中的一切。我的核心代码(域)在Class库(便携)中,所以它可以在每个UI(客户端)中使用。

我想在那个项目中使用 IoC 容器,这是我的问题: 我不知道我选择的 IoC 是否适用于每个客户端。我知道例如 Ninject 在便携式 Class 库中不起作用 - 有 Ninject.Portable对于这样的项目。这让我想到,我选择的 IoC 可能无法在我的一个客户中工作,这很糟糕。

所以,我的问题是:哪些 IoC 容器可用于便携式 class 库和 Visual Studio 2015 年制作的每个客户端 (UI)?

我对Simple Injector很感兴趣,但现在我有这些疑问。

有一个 IoC 容器可以与 Xamarin 一起工作,称为 SystemDot。 It's on nuget.

我已经在 IoC 容器和与 Xamarin 一起工作的容器插件上编写了一个小的抽象层。它们在 NuGet 上可用:

https://www.nuget.org/packages?q=xlabs.ioc

测试容器(unit tests are in GitHub):

  • Autofac
  • Ninject
  • 简单注射器
  • TinyIOC
  • 团结

Matt Whetton 写了一篇优秀的文章guide on how to use them