CommandDrawing
別のアセンブリにあるクラスのインスタンスを動的に作成しようとしています。クラスのCommandDrawing
デフォルト コンストラクターには、同じアセンブリ内の別のクラスにある静的メソッドへの呼び出しが含まれています。動的クラスが作成されますが、コンストラクターで静的メソッド呼び出しを実行しようとすると、例外が発生してフォールオーバーします。
呼び出しのターゲットによって例外がスローされました。TypeInitializeException`の型初期化子が例外をスローしました。
両方のクラスにロードする必要がありますか?
以下のコードを使用して、以前に正常に使用したクラスを作成し、静的メソッド呼び出しが存在しない場合に機能します。
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);
}