L'obtention d'un délégué de methodinfo

J'ai une liste déroulante qui est remplie par l'inspection d'une classe de méthodes, y compris ceux qui correspondent à une signature spécifique. Le problème est dans l'élément sélectionné de la liste et d'obtenir le délégué à l'appel de la méthode dans la classe. La première méthode fonctionne, mais je ne peux pas comprendre une partie de la deuxième.

Par exemple,

public delegate void MyDelegate(MyState state);

public static MyDelegate GetMyDelegateFromString(string methodName)
{
    switch (methodName)
    {
        case "CallMethodOne":
            return MyFunctionsClass.CallMethodOne;
        case "CallMethodTwo":
            return MyFunctionsClass.CallMethodTwo;
        default:
            return MyFunctionsClass.CallMethodOne;
    }
}

public static MyDelegate GetMyDelegateFromStringReflection(string methodName)
{
    MyDelegate function = MyFunctionsClass.CallMethodOne;

    Type inf = typeof(MyFunctionsClass);
    foreach (var method in inf.GetMethods())
    {
        if (method.Name == methodName)
        {
            //function = method;
            //how do I get the function to call?
        }
    }

    return function;
}

Comment puis-je obtenir le commentaire sur l'article de la deuxième méthode de travail? Comment puis-je lancer le MethodInfo dans le délégué?

Merci!

Edit: Voici la solution de travail.

public static MyDelegate GetMyDelegateFromStringReflection(string methodName)
{
    MyDelegate function = MyFunctionsClass.CallMethodOne;

    Type inf = typeof(MyFunctionsClass);
    foreach (var method in inf.GetMethods())
    {
        if (method.Name == methodName)
        {
            function = (MyDelegate)Delegate.CreateDelegate(typeof(MyDelegate), method);
        }
    }

    return function;
}
InformationsquelleAutor Ty. | 2009-06-02