繁体   English   中英

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

[英]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 ,然后查看获得的每个ConstructorInfoParameters属性,以搜索所需的属性。

暂无
暂无

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

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