在 使用Activator.CreateInstance反射創建對象時,一定要注意構造函數參數問題。如果對象有自定義的構造參數,必須添加參數對應的參數。
MyObject myObject = (MyObject)Activator.CreateInstance(myObjectType); //錯誤1 MyObject myObject = (MyObject)Activator.CreateInstance(myObjectType,null); //錯誤2
錯誤1會導致:沒有為該對象定義無參數的構造函數。
錯誤2會導致:未找到類型"XXX"上的構造函數。
正確方式輸入object數組參數對象。
MyObject myObject = (MyObject)Activator.CreateInstance(myObjectType, new object[] {"參數",…}); //正確