Try to change
obj.InvokeMember("PrintDemo", BindingFlags.InvokeMethod, null, obj, null);
// To...
obj.InvokeMember("PrintDemo", BindingFlags.InvokeMethod, null, ins, null);
I believe you should be sending the instance 'ins' as target and not the Type. Otherwise there would be no reason to create an instance.
It's a really long time since I've worked with reflection...