我正在嘗試編寫接收參數列表並獲取匹配Ctor的ConstructorInfo的代碼。如何使用參數獲取Ctor的ConstructorInfo
方法簽名是ConstructorInfo GetConstructorInfo(Type type, object[] args)
。
我創建了一個類的工作:
public class ClassWithParamsInCtor
{
public ClassWithParamsInCtor(params int[] parameters)
{
}
}
使用Activator
類,我可以創建這個對象的實例:
ClassWithParamsInCtor myclass = Activator.CreateInstance(typeof(ClassWithParamsInCtor), new object[] { 1,2 }) as ClassWithParamsInCtor; \\returns a valid instance of the class;
但是,當我試圖讓ConstructorInfo有一個問題,以下返回null:
ConstructorInfo ctorInfo = typeof(ClassWithParamsInCtor).GetConstructor(new Type[] { typeof(int), typeof(int) }); \\returns null
如何獲取C onstructorInfo在這種情況下?
謝謝Berkay!這有助於解決問題,但這並不是問題的唯一論據。例如,如果Ctor獲得了double x和params int [] args,並且我的方法傳遞了[3.5,1,2]的對象[]。如果他們是int類型的,我可以貪婪地開始匹配參數,但我希望有更好的方法 – Belgi