【问题标题】:Does Dynamo IoC work with MonoTouch and MonoDroid?Dynamo IoC 是否与 MonoTouch 和 MonoDroid 一起使用?
【发布时间】:2012-05-24 17:24:40
【问题描述】:

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

【问题讨论】:

  • 我已经研究了大约 2 天的 IOC 容器,但在 Dynamo IOC 上并没有发现太多超出基准的东西,理由是它的速度。我在进行搜索时可能遗漏了一些内容,但我认为我的问题并不合适。
  • 你没有抓住重点。我不是说你懒惰。我的意思是,提出开放式问题以比较市场上的不同产品对于本网站来说完全是题外话。
  • 我明白你的意思,我已经删除了侧边栏并重新表述了这个问题,以便更加明确地专门询问 Dnamo IoC 及其与 MonoTouch 和 MonoDroid 的兼容性。感谢您的评论;我认为这个问题现在更贴切地符合 StackOverflow 问答系统的精神。

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


【解决方案1】:

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

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

【讨论】:

  • 我一直在关注 TinyIoC,这绝对是我关注的焦点。我以前没有听说过 OpenNetCF.IoC。我也会看看那个。感谢您的建议!
  • 如果有帮助的话,OpenNetCF 团队是长期的 Windows Mobile/WinCE 核心编码员 - 他们的代码非常完善!几年前我什至曾经是付费客户。
  • 我们还在 CF、Windows 桌面、WinPhone、MonoDroid 和 MonoTouch 中运行的应用程序中大量使用 OpenNETCF IoC 库。这些应用程序不断得到改进和扩展,因此 IoC 最终成为了一个活跃的项目。
  • TinyIoC 在 MonoDroid 上运行良好。您还可以获得 TinyMessenger 的好处,我一直在使用它来实现相当多的类似服务的行为,而且比一些本地 MonoDroid 基础设施要少。
【解决方案2】:

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

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

【讨论】:

  • 只是为了检查一下 - 您是否真的尝试过在真实设备上使用 MonoTouch 运行它?如果不是,那么请不要把它推开,这是一个公认的答案和事实。
【解决方案3】:

我刚刚开始了一个 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 的引用。

【讨论】:

    猜你喜欢
    • 2011-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-13
    • 2012-02-25
    • 1970-01-01
    • 2011-11-09
    • 1970-01-01
    相关资源
    最近更新 更多