我有这段代码来获取默认构造函数:
Public Function f(ByVal t As System.Type) As Object
Return t.GetConstructor(New System.Type() {}).Invoke(New Object() {})
End Function
我需要将值传递给构造函数
Public Function f(ByVal t As System.Type) As Object
Return t.GetConstructor(New System.Type() {someInteger,someString,etc.etc}).Invoke(New Object() {})
End Function
此外,我有3个类型T
,所有类都具有不同的参数构造函数。对于我来说,将它设为通用非常重要,因为类型T
的类在将来可能会因参数越来越少而增加。
答案 0 :(得分:4)
是的,这是可能的。
但是,您要将值放在Type()
中。您需要指定构造函数的类型,以便它知道您要实际解析的构造函数,然后在Invoke
中传递您希望的实际值:
Public Function f(ByVal t As System.Type) As Object
Return t.GetConstructor(New System.Type() {GetType(Integer),GetType(String)}).Invoke(New Object() {someInteger, someString})
End Function