dimanche 17 mai 2015

Call dynamic method from string

I'm trying to call a method from a dynamic without knowing its name. I have difficulties to explain this in english so there's the code:

public void CallMethod(dynamic d, string n)
{
    // Here I want to call the method named n in the dynamic d
}

I want something like:d.n() but with n replaced by the string.

I'm want this :

Type thisType = this.GetType();
MethodInfo theMethod = thisType.GetMethod(TheCommandString);
theMethod.Invoke(this, userParameters);

but with dynamic.

If you need the context to help you: I'm make an application that's support "mods", you put DLLs in the mod folder and it loads it and execute it. It works with dynamic (I have a dictionnary like this : Dictionnary<string, dynamic> instances;). I want the application to get the methods name from the library (with instances["topkek"].GetMethods();, I've already made this method) but then call the method with the string it returns. I don't know if what I said mean something (I'm french :/ )...

I'm using VS 2013 Express with the .Net framework 4.5, if you need more information to help me ask me.





Aucun commentaire:

Enregistrer un commentaire