Xamarin PCL库中的GetConstructors

时间:2014-07-05 11:34:23

标签: c# reflection mono xamarin

我正在与Xamarin一起开发一个Android项目,一路上,我决定编写自己的简单IoC容器。现在,我来决定是否需要为注入的实例注入任何依赖项。我查看了Type.GetConstructors,它说它可以在PCL项目中使用,但我似乎无法获得GetConstructors。

我在使用中有System.Reflection,如果我创建了一个Android库,我可以使用GetConstructor / s。 MSDN documentation肯定会说  它在PCL中。也许这不是我完全理解PCL在Xamarin生态系统中意味着什么,但我认为这意味着它会受到支持。

所以,我的问题是,我错过了什么或者这是否正确?

更新

对于任何想要了解我是如何做到这一点的人来说;

https://github.com/tbd-develop/simpletypeprovider

1 个答案:

答案 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...
}