Today I stumbled upon an interesting bug I wrote. I have a set of properties which can be set through a general setter. These properties can be value types or reference type
Since the input parameter's type is object, you will always get a boxed value inside the method's context.
object
I think your only chance is to change the method's signature and to write different overloads.