Ninject和MonoDroid

时间:2012-04-03 12:01:39

标签: ninject xamarin.android

任何人都有幸得到Ninject在MonoDroid上工作?我已经尝试过他们网站上的2.0和4.0单声道版本,并尝试了.net版本。

使用Mono构建我在StandardKernel的实例化中遇到MissingMethodException

2 个答案:

答案 0 :(得分:5)

我正在尝试使用Ninject组合的WP7 / Monotouch / Mono for Android项目,而Ninject的效果非常好。

我使用了最新的源代码,其中包含一个似乎已过时的项目文件Ninject.WP7.csproj。它包含很多DefineConstants。我为这些常量创建了新的WP7 / Monotouch / Mono for Android解决方案,所有内容都已编译完成并正常工作!

使用的常数:

SILVERLIGHT,SILVERLIGHT_40,NO_LCG,NO_ASSEMBLY_SCANNING,NO_WEB,NO_PARTIAL_TRUST,NO_SKIP_VISIBILITY,NO_EXCEPTION_SERIALIZATION,NO_DEBUG_SYMBOLS

不确定它们是否全部都需要,但SILVERLIGHT非常重要,因为Monotouch / Mono for Android实现了Silverlight api的很大一部分。

当然,您无法使用Ninject创建Android活动。我主要用于构造函数注入,创建像ViewManager这样的.Net对象,使用存储库查看模型等等,通常用依赖注入做的事情。

答案 1 :(得分:1)

我没有尝试让Ninject工作,但是如果它开箱即用,我会感到非常惊讶。如果有一个Silverlight构建的Ninject你可能会有更多的运气,但没有保证。在Mono for Android中获得支持的“最佳”方式是将Mono for Android配置文件的代码构建为类库。

也就是说,还有其他选项可以在您的应用中进行服务定位。我有blog post up here讨论使用TinyIoC和Funq进行服务定位。