簡體   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