比较下面同一类的两个实例。该变量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”,则生成的对象会有所不同,这会在稍后阶段破坏产品。
正如您可能理解的那样,我的任务是使用反射而不是参考。我已经确认正在调用正确的构造函数。