Ok Javier, got it! :D I've discoverd one hell of a class in the Reflexion namespace that has solved all my problems: TypeDelegator public object RunMethod(string methodName, object[] arguments) { object proxy=GetProxy(); TypeDelegator delegator=new TypeDelegator(typeof(IDataLayerTool)); return delegator.GetMethod(methodName).Invoke(proxy,arguments); } It seems that the TypeDelegator can map correctly through interfaces and even makes the job a lot easier as u dont have to create delegates as u would with a DynamicInvoke. Nice little class, yessir :D Again, thanks for your time Javier.