Type.GetProperties() missing in Xamarin PCL

2019-02-08 07:42发布

问题:

In Xamarin PCL, I'm trying to get the System.Reflection.PropertyInfo of a class I've written so that I can access its properties by their string name to get/set, and Type.GetTypeInfo() is missing, as well as Type.GetProperties. But System.Reflection.PropertyInfo is a valid class. How can I obtain the property info of a class? Do I have to write a wrapper for each platform? (It shows up just fine in the Android/iOS projects).

回答1:

I have just run into this, pretty sure the answer is to use:

Type.GetRuntimeProperties


回答2:

It's an extension, so you need to put

using System.Reflection;

at the top. Then it's available:

        TypeInfo typeInfo = this.GetType().GetTypeInfo();
        foreach (PropertyInfo propInfo in typeInfo.DeclaredProperties)


回答3:

You can also try

using System.Reflection; 

Type t = typeof(YOURTYPE);
var properties = t.GetTypeInfo().DeclaredProperties