c# - programas - ¿Qué contingente de IoC utilizar en aplicaciones multiplataforma(Xamarin)?
xamarin forms webview xaml (2)
Hay un contenedor IoC que funciona con Xamarin llamado SystemDot. Está en Nuget.
Estoy construyendo una aplicación multiplataforma para Windows, OSX, iOS, Windows Mobile, Android y web en ASP.NET. Para cada cliente uso C # (estoy usando Xamarin). Todo en una sola solución de VS. Mi código central (dominio) está en la Biblioteca de clases (portátil) , por lo que se puede usar en cada UI (Cliente).
Quiero usar contenedor IoC en ese proyecto y aquí está mi problema: no sé si IoC que seleccionaré, funcionará en cada Cliente. Sé que, por ejemplo, Ninject no funciona en la Biblioteca de clases portátil; hay Ninject.Portable para ese proyecto. Eso me hizo pensar que es posible que la IoC que escogeré no funcione en uno de mis clientes, lo cual será malo.
Entonces, mi pregunta es: ¿Qué contenedores IoC se pueden usar en bibliotecas de clases portátiles y en cada cliente (UI) hecho en Visual Studio 2015?
Estaba interesado en Simple Injector , pero ahora tengo estas dudas.
He escrito una pequeña capa de abstracción en contenedores y complementos de IoC para contenedores que funcionan con Xamarin. Están disponibles en NuGet:
https://www.nuget.org/packages?q=xlabs.ioc
Contenedores probados (las pruebas unitarias están en GitHub ):
- Autofac
- Ninject
- SimpleInjector
- TinyIOC
- Unidad
Matt Whetton ha escrito una excelente guía sobre cómo usarlos .