0

我通过使用模板重载了方法。GetMethod 没有为提供的参数类型返回任何方法信息。我需要帮助来识别从以下代码中检索方法信息所需的正确类型签名

public class MyClass
{
    public void MyFunc<Template>(int a)
    { }
    public void MyFunc<Template>(long a)
    { }
    public void MyFunc<Template>(MyClass1<Template, int> a)
    { }
    public void MyFunc<Template>(MyClass1<Template, long> a)
    { }
}

public class MyClass1<T,G>
{ }

我将其用作:

static void Main(string[] args)
{
    Type[] types = new Type[] 
    {
        typeof(MyClass1<object, int>)
    };

    //Contains Required Method
    var allAvailMethods = typeof(MyClass).GetMethods();

    //required method void MyFunc<Template>(MyClass1<Template, int> a)
    //Returns NULL
    var requiredMethod = typeof(MyClass).GetMethod("MyFunc", types);
}
4

0 回答 0