繁体   English   中英

如何使用反射C#获取构造函数泛型参数类型

[英]How to get Constructor Generic parameter type using reflection c#

大家好,谢谢。 我有一个类和一个参数化构造函数,我想读取构造函数参数类型。 说吧

Class A
{    
    public A(Helper help)
    {
       // code
    }
}

在上面的代码中,我们可以使用以下代码读取构造函数:

Type ClassType = typeof(A);
ConstructorInfo[] Constructors = ClassType.GetConstructors();
foreach (ConstructorInfo constInfo in Constructors)
{
    if (constInfo.GetParameters().Count() > 0)
    {
        RefNames = new List<string>();
        foreach (ParameterInfo parameters in constInfo.GetParameters())
        {
             Type newType = parameters.ParameterType;
        }
    }
}

因此,在newType中,我将获得“ Helper”类的Type,但我希望从通用接口输入Type。 例如

Class A
{    
    public A(IHelper<Helper> help)
    {
       // code
    }
}

//凡是从IHelper介面继承的Helper类别现在,我想输入IHerper介面的类型,例如Helper的类型。

提前致谢。

不问你为什么这样做,但是可以通过访问ParameterInfo GenericTypeArguments属性来获取使用的通用类型:

Type newType = parameters.ParameterType.GenericTypeArguments.First();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM