C# – How to get value from the object but its type is unreachable


For instance, in my current class, there is a hashtable,

Hashtable t = GetHashable(); //get from somewhere.

var b = t["key"];

the type of b is hidden from my current class, it is unreachable, not a public class type.

but i want to get a value from b, for example b has a field call "ID",
i need to get the ID from b.

is there anyway i can get it, reflection ???

Best Solution

If you don't know the type, then you'll need reflection:

object b = t["key"];
Type typeB = b.GetType();

// If ID is a property
object value = typeB.GetProperty("ID").GetValue(b, null);

// If ID is a field
object value = typeB.GetField("ID").GetValue(b);