Jak rzutować niejawnie na wywołanie metody odbitej

mam klasęThing który jest domyślnie odlewany zstring. Kiedy wywołuję metodę za pomocąThing parametryzuj bezpośrednio rzutstring doThing jest zrobione poprawnie.

Jeśli jednak użyję refleksji do wywołania tej samej metody, zgłasza wyjątek

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

Może jest ku temu dobry powód, ale nie mogę tego zrozumieć. Czy ktoś ma pomysł, jak to działa przy użyciu refleksji?

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:Proszę, nie dyskutujcie, dlaczego niejawne casting lub odbicie jest złe.

questionAnswers(3)

yourAnswerToTheQuestion