我試圖動態創建另一個程序集中的類CommandDrawing
的實例。 CommandDrawing
類的默認構造函數包含對靜態方法的調用,這些靜態方法位於同一個集合中的另一個類中。創建動態類,但是,當它改掉運行在構造函數中的靜態方法調用它倒了,出現異常:動態創建具有構造函數的類,該構造函數調用另一個靜態類方法
Exception has been thrown by the target of an invocation. TypeInitializeException`The type initializer for threw an exception.
我必須在這兩個類,如果是如何加載?
我用下面的代碼來創建,我已經成功地使用之前和工作類時靜態方法調用是不是有:
Assembly assemblyCommandDrawing = System.Reflection.Assembly.LoadFile(@"D:\ManifoldInspections.dll");
Type typeCommandDrawing = assemblyCommandDrawing.GetType("InspectionDetails.CommandDrawing");
object cmd = System.Activator.CreateInstance (typeCommandDrawing, new object[] { drawing, DrawingBaseDetail });
的CommandDrawing
默認構造函數看起來像下面 - 注意UtilityMapControl.SetupDrawingTableTemplate
是靜態方法我打電話,它倒在這裏:
public CommandDrawing(Manifold.Interop.Drawing p_Drawing, InspectionDetails.DrawingBaseDetail p_ClassDetailTemplate)
{
this.Drawing = p_Drawing;
//this.ClassDetailTemplate = p_ClassDetailTemplate.GetType();
this.ClassDetailTemplate = p_ClassDetailTemplate;
ManifoldInspections.Utility.UtilityMapControl.SetupDrawingTableTemplate(this.Drawing, p_ClassDetailTemplate);
}
你能提供生成動態類的代碼嗎? – ivowiblo
是否有內部異常?如果是這樣,那是什麼?您不應該需要顯式加載這兩個類。 –
ivowiblo - 抱歉,我正在動態創建一個類的實例,而不是類。 – gisWeeper