[英]C# - Reflection -Identifying Overloaded constructor
我需要确定重载的构造函数以使用反射传递值。部分代码为:
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 ){}
在反射过程中,我该如何匹配Exatctructor?
Type.GetConstructor有一个重载,您可以在其中指定构造函数参数的类型,例如
var ciInfo = t.GetConstructor(new[] { typeof(string), typeof(int) });
使用将类型数组作为参数的GetConstructor重载 。
使用GetConstructors
方法而不是GetConstructor
,然后查看获得的每个ConstructorInfo
的Parameters
属性,以搜索所需的属性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.