18

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).

user1054922
  • 2,101
  • 2
  • 23
  • 37

3 Answers3

32

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)
user1054922
  • 2,101
  • 2
  • 23
  • 37
22

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

Type.GetRuntimeProperties
JamesSugrue
  • 14,891
  • 10
  • 61
  • 93
  • More relevant information on a similar issue: https://social.msdn.microsoft.com/Forums/en-US/05eebec9-b56f-4b55-9624-dabfc6d24bbd/typeisassignablefrom-in-portable-class-library – Nestor Ledon Sep 28 '15 at 03:33
0

You can also try

using System.Reflection; 

Type t = typeof(YOURTYPE);
var properties = t.GetTypeInfo().DeclaredProperties
Max Chu
  • 56
  • 4