Implizite Umwandlung in einen reflektierten Methodenaufruf

ich habe ein klasseThing das ist implizit gießbar aus astring. Wenn ich eine Methode mit a aufrufeThing Parameter direkt die Besetzung ausstring zuThing ist richtig gemacht.

Wenn ich jedoch Reflection verwende, um dieselbe Methode aufzurufen, wird die Ausnahme ausgelöst

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

Vielleicht gibt es einen guten Grund dafür, aber ich kann es nicht herausfinden. Hat jemand eine Idee, wie man dies durch Reflektion zum Laufen bringt?

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:Bitte keine Diskussionen, warum implizites Casting oder Reflektion schlecht ist.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage