使用反映發出定義建構函式
更新:2007 年 11 月
建構函式是使用 TypeBuilder.DefineConstructor 方法定義。DefineConstructor 會傳回 ConstructorBuilder。DefineConstructor 要求呼叫端,使用 MethodAttributes 列舉型別來指定建構函式屬性 (Attribute)。
類別的預設建構函式是使用 TypeBuilder.DefineDefaultConstructor 方法定義。DefineDefaultConstructor 傳回 ConstructorBuilder。預設建構函式只是呼叫父類別的建構函式。如果呼叫端不定義的話,Common Language Runtime 自動定義類別的預設建構函式。
屬性
執行階段為建構函式設定屬性 MethodAttributes.SpecialName。
私用建構函式使用 MethodAttributes.Private 屬性來指定。如需其他可視性屬性的詳細資訊,請參閱 MethodAttributes 列舉型別的說明。
已知的問題
雖然 ConstructorBuilder 衍生自 ConstructorInfo,一些定義於 ConstructorInfo 類別的抽象方法並不在 ConstructorBuilder 中完整實作。這些 ConstructorBuilder 方法會擲回 NotSupportedException。擷取含有建構函式的型別並反映它,即可獲得想要的功能。例如,ConstructorBuilder.Invoke 方法沒有被完整實作。
自訂修飾詞目前不支援。