How to cast implicitly on a reflected method call
===

I have a class `Thing` that is implicitly castable from a `string`. When I call a method with a `Thing` parameter directly the cast from `string` to `Thing` is done correctly.

However if I use reflection to call the same method it throws the exception

    System.ArgumentException : Object of type 'System.String' cannot be converted to type 'Things.Program+Thing'.

Maybe there is a good reason for this, but I can't figure it out. Does somebody have an idea how to get this working using reflection?

    namespace Things
    {
    	class Program
    	{
    		public class Thing
    		{
    			public string Some;
    
    			public static implicit operator Thing(string s)
    			{
    				return new Thing {Some = s};
    			}
    		}
    
    		public void showThing(Thing t)
    		{
    			Console.WriteLine("Some = " + t.Some);
    		}
    
    		public void Main()
    		{
    			showThing("foo");
    			MethodInfo showThingReflected = GetType().GetMethod("showThing");
    			showThingReflected.Invoke(this, new dynamic[] {"foo"});
    		}
    	}
    }

Meta: *Please, no discussions why implicit casting or reflection is bad.*