My code receives transparent proxy instead of original instance.
While this var type = obj.GetType(); yields the type of original class,
the following code throws TargetException:
Object does not match target type
var value = property.GetValue(obj, null);
where property is one from the type.GetProperties()