7

我很好奇,在所有可能的 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 等的兼容性时发现缺乏细节。

4

3 回答 3

5

我无法回答有关 DynamoIoC 的问题,但我在 MonoTouch 和 MonoDroid 上使用了 TinyIoC 和 OpenNetCF IoC,没有任何问题。

在 MvvmCross 中,我目前使用了一组非常有限的 OpenNetCF 功能,并且可以跨 wp7、ios、droid 和 winrt 工作。

于 2012-05-11T16:27:04.517 回答
1

Dynamo 似乎无法通过 MonoTouch 或 Unity 3D 与针对 iOS 平台的 C# 项目一起使用。

由于 StackOverflow 上的其他一些问题和答案,我能够在 Mono 的限制中找到这一点;在对 Dynamo IoC 的代码进行了更彻底的审查并更好地理解了System.Linq.Expressions命名空间的含义之后,看起来 Dynamo 能够通过使用 Linq 提供的动态表达式来实现其大部分速度。据我了解,代码使用System.Linq.Expressions与动态代码生成属于同一类别,因此导致 Dynamo IoC 无法用于 MonoTouch(以及针对 iOS 的代理 Unity 3D 项目)。

于 2012-05-14T03:00:13.217 回答
0

我刚刚开始了一个 MonoTouch 项目,我正在使用Munq.IocContainer。Munq 是我之前在 ASP.NET MVC 项目和 Windows Mobile 6 应用程序中使用过的小型 DI 框架。尽管它没有大型框架的花里胡哨,但配置起来既快速又容易。

请忽略以上。我开始使用 Munq,它在模拟器中运行良好,但当我尝试部署到真正的 iPhone 时却失败了。这是因为 Munq JIT 的一些代码在 iOS 上的 MonoTouch 中无法使用 AFAIK。我回到了Funq,Munq 就是从它派生出来的。Munq 实际上是为在 ASP.NET MVC3 中使用而设计的,因此恢复到 Funq 也意味着不需要删除对 system.web 的引用。

于 2012-05-15T10:12:48.450 回答