user1492051
user1492051

Reputation: 906

Getting a property reference using reflection

var a = new obj();
var property = a.GetType().GetProperty("DB").GetValue(a,null) as testObject;

does this mean that the variable property hold a reference to the the same object that i got in object a , or a new testObject was made that holds the same values?

if this means creating a new object, then how can i get the reference to that property/backing field using reflection?

Upvotes: 5

Views: 4606

Answers (3)

CodeCaster
CodeCaster

Reputation: 151720

property now holds a referece to whatever is in a's DB property.

I'm not sure though what happens when you call GetValue() on a property that has a value type, I suppose you get a reference to a boxed copy of the original value, as explained in Boxing and Unboxing (C# Programming Guide):

Boxing a value type [to object in GetValue()'s case] allocates an object instance on the heap and copies the value into the new object.

Upvotes: 4

w.b
w.b

Reputation: 11238

It means a value of a property DB of your object a cast to testType (you pass a reference to object a in PropertyInfo.GetValue), so there is only one object a and your variable references its DB property.

Upvotes: 2

Rohit Vats
Rohit Vats

Reputation: 81313

Variable property holds reference to same value stored in property DB.

GetValue(a,null) return type is object so with as operator you are simple type casting it.

Upvotes: 2

Related Questions