Dynamo IoC可以与MonoTouch和MonoDroid配合使用吗?

时间:2012-05-11 16:21:57

标签: dependency-injection xamarin.ios inversion-of-control xamarin.android unity3d

我很好奇,在所有可能的C#.NET反转控制解决方案中,如果有人尝试过Dynamo IoC(http://www.dynamoioc.com/)以及它是否适用于为MonoTouch和MonoDroid设计的项目?

虽然我没有明确使用MonoTouch或MonoDroid,但我使用的是Unity 3D(http://www.unity3d.com)。我希望如果一个IoC框架(例如Dynamo)在MonoTouch和MonoDroid上工作,它很可能也会满足我对Unity 3D的需求。

注意:我一直在研究控制容器的反转,以及它们与MonoTouch,MonoDroid等的兼容性,现在已经有几天了;这个问题不是来自懒惰,而是我在研究Dynamo IOC及其与MonoTouch,MonoDroid等的兼容性时发现的细节缺乏。

3 个答案:

答案 0 :(得分:5)

我无法回答DynamoIoC,但我在MonoTouch和MonoDroid上使用过TinyIoC和OpenNetCF IoC没有问题。

在MvvmCross中,我目前使用一组非常有限的OpenNetCF功能,可以在wp7,ios,droid和winrt中使用。

答案 1 :(得分:1)

Dynamo似乎不适用于通过MonoTouch或Unity 3D定位iOS平台的C#项目。

我能够在Mono的限制中找到this,其中包括StackOverflow上的其他一些问题和答案。在对Dynamo IoC code进行更全面的审核以及更好地了解System.Linq.Expressions命名空间所需要的内容之后,看起来Dynamo能够通过动态使用它来实现大部分速度Linq提供的表达方式。我的理解是,使用System.Linq.Expressions的代码与动态代码生成属于同一类别,从而使MonoTouch(以及针对iOS的代理Unity 3D项目)无法使用Dynamo IoC。

答案 2 :(得分:0)

我刚开始使用MonoTouch项目而我正在使用Munq.IocContainer。 Munq是一个小型的DI框架,我以前在ASP.NET MVC项目和Windows Mobile 6应用程序中使用过。虽然它没有大型框架的花哨和口哨,但它配置起来快速而简单。

请忽略上述内容。我开始使用Munq,它在模拟器中工作得非常好,但当我尝试部署到真正的iPhone时失败了。这是因为Munq JIT的一些代码AFAIK在iOS上的MonoTouch中并不合适。我已经回到了Funq,从中派生出了Munq。 Munq实际上打算在ASP.NET MVC3中使用,因此恢复到Funq也意味着没有需要删除的system.web引用。