以下の同じクラスの 2 つのインスタンスを比較してください。変数instanceA
はリフレクションを使用してinstanceB
作成されますが、VS2012 プロジェクトから DLL への直接参照を使用して作成されます。
var a = Assembly.Load(File.ReadAllBytes(@"C:\MyFilePath.dll"));
var t = a.GetType("Namespace.MyClassType");
var instanceA = Activator.CreateInstance(t);
var instanceB = new Namespace.MyClassType();
問題?これらは等しくありません。instanceA
とのフィールドinstanceB
は異なります。を使用している限り、現在私のコードは機能していinstanceB
ます。しかし、文字「B」のみを「A」に変更すると、結果のオブジェクトは多少異なり、後の段階で製品が壊れます。
ご存じのとおり、私の仕事は参照の代わりにリフレクションを使用することです。正しいコンストラクタが呼び出されていることを確認しました。