我正在与Xamarin一起开发一个Android项目,一路上,我决定编写自己的简单IoC容器。现在,我来决定是否需要为注入的实例注入任何依赖项。我查看了Type.GetConstructors,它说它可以在PCL项目中使用,但我似乎无法获得GetConstructors。
我在使用中有System.Reflection,如果我创建了一个Android库,我可以使用GetConstructor / s。 MSDN documentation肯定会说 它在PCL中。也许这不是我完全理解PCL在Xamarin生态系统中意味着什么,但我认为这意味着它会受到支持。
所以,我的问题是,我错过了什么或者这是否正确?
更新
对于任何想要了解我是如何做到这一点的人来说;
答案 0 :(得分:10)
Xamarin使用与Microsoft发布的相同的PCL配置文件,但并非所有PCL配置文件都支持System.Type.GetConstructors()。
你可能需要做这样的事情(很难肯定,因为每个PCL配置文件都有不同的System.Reflection限制):
var info = type.GetTypeInfo ();
foreach (var ctor in info.DeclaredConstructors) {
// find the .ctor you want...
}