[英]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.