我需要识别重载的构造函数以使用反射传递值。部分代码是:
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类型包含重载的构造函数
public MedicalInsuranceRules( ){}
public MedicalInsuranceRules(string ruleID,int subSection ){}
public MedicalInsuranceRules(string ruleID,
int subSection,string majorDocID ){}
如何在反射过程中匹配excat构造函数?
答案 0 :(得分:4)
Type.GetConstructor有一个重载,您可以在其中指定构造函数参数的类型,例如
var ciInfo = t.GetConstructor(new[] { typeof(string), typeof(int) });
答案 1 :(得分:1)
使用带有一系列类型作为参数的GetConstructor overload。
答案 2 :(得分:0)
使用GetConstructors
方法代替GetConstructor
,然后查看获得的每个Parameters
的{{1}}属性,以便搜索您想要的属性。