开发者

Name of the constructor arguments in c#

开发者 https://www.devze.com 2023-03-17 17:05 出处:网络
I\'ve a requirement in which i need to get the variables names of the constructor in my class. I tried it using c# reflection, but constructorinfo does not give sufficient information. As it only prov

I've a requirement in which i need to get the variables names of the constructor in my class. I tried it using c# reflection, but constructorinfo does not give sufficient information. As it only provides the datatype of the parameters but i want the names, ex

class a
{    
    public a(int iArg, string strArg)
    {
    }
}

Now i wa开发者_如何学JAVAnt "iArg" and "strArg"

Thanks


If you call ConstructorInfo.GetParameters(), then you will get back an array of ParameterInfo objects, which has a Name property containing the name of the parameter.

See this MSDN page for more information and a sample.

The following sample prints information about each parameter of class A's constructor:

public class A
{
    public A(int iArg, string strArg)
    {
    }
}

....

public void PrintParameters()
{
    var ctors = typeof(A).GetConstructors();
    // assuming class A has only one constructor
    var ctor = ctors[0];
    foreach (var param in ctor.GetParameters())
    {
        Console.WriteLine(string.Format(
            "Param {0} is named {1} and is of type {2}",
            param.Position, param.Name, param.ParameterType));
    }
}

The above sample prints:

Param 0 is named iArg and is of type System.Int32
Param 1 is named strArg and is of type System.String


I just checked MSDN for your question. As I see any ConstructorInfo instance may provide you with a method GetParameters(). This method will return a ParameterInfo[] - and any ParameterInfo has a property Name. So this should do the trick

 ConstructorInfo ci = ...... /// get your instance of ConstructorInfo by using Reflection
 ParameterInfo[] parameters = ci.GetParameters();

 foreach (ParameterInfo pi in parameters)
 {
      Console.WriteLine(pi.Name);  
 }

you may check msdn GetParameters() for any additional information.

hth

0

精彩评论

暂无评论...
验证码 换一张
取 消