Type.GetMethod()不返回模板化参数化函数的methodinfo

时间:2013-09-26 05:18:23

标签: .net c#-4.0

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

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);
}

0 个答案:

没有答案