C# C-反射-识别重载构造函数

C# C-反射-识别重载构造函数,c#,C#,我需要识别重载构造函数以使用反射传递值。部分代码为: asm=Assembly.Load("RulesLibrary"); Type t = asm.GetType("RulesLibrary.MedicalInsuranceRules"); object ActObj = Activator.CreateInstance(t); object[] conparam = new object[

我需要识别重载构造函数以使用反射传递值。部分代码为:

            asm=Assembly.Load("RulesLibrary");

            Type t = asm.GetType("RulesLibrary.MedicalInsuranceRules");

            object ActObj = Activator.CreateInstance(t); 

            object[] conparam = new object[2];

            conparam[0] = "RuleID"; // string

            conparam[1] =12; // int

// How to find out the overloaded constructor in Type MedicalInsuranceRules

            ConstructorInfo cinfo = t.GetConstructor();

            cinfo.Invoke(ActObj, conparam);
假设MedicalInsuranceRules类型包含重载构造函数

如何在反射期间匹配excat构造函数?

使用将类型数组作为参数的。有一个重载,您可以在其中指定构造函数参数的类型,例如

var ciInfo = t.GetConstructor(new[] { typeof(string), typeof(int) });
使用GetConstructors方法而不是GetConstructor,然后查看获得的每个ConstructorInfo的Parameters属性,以搜索所需的参数

var ciInfo = t.GetConstructor(new[] { typeof(string), typeof(int) });