我经历了一些奇怪的组装行为。我成功执行了一个调用并且我想要的方法被执行,但是这个方法不能访问public static
一个public static
类的对象的任何值。所有的值null
就像方法访问类的空副本一样,但这是不可能的,因为类是static
.
要调用该方法,我加载了程序集,如下所示:
public static Assembly loadedAssembly = Assembly.LoadFrom( //path of the dll );
然后被调用的方法只能访问来自另一个static
类的空值。但是设置Assembly
如下使该方法能够正确访问所有值。
public static Assembly loadedAssembly = Assembly.GetExecutingAssembly();
我认为它们是相同的,因为Assembly
从目录加载的i 与此时执行的完全相同。一个if
比较证实,这些都是不相同的,但。似乎Assembly
直接从目录加载的没有“初始化”,所以它的所有成员都是null
. 你能告诉我那里发生了什么以及为什么那些Assembly
成员都是null
。
由于没有人提供所需的答案,所以我会去做。我在那里遇到的问题基本上是从Assemblies
. 问题是我Assembly
从目录中加载了这个:
public static Assembly loadedAssembly = Assembly.LoadFrom( //path of the dll );
但这还Assembly
没有得到首字母缩写,它包含有关成员和类型的信息,但不包含它们的值。这些包含在当前执行中Assembly
,可以通过这种方式访问:
public static Assembly loadedAssembly = Assembly.GetExecutingAssembly();
并且在当前执行中Assembly
包含为其成员分配的值。
所以Assembly.LoadFrom()
只能在您需要有关类型和成员的信息时使用,Assembly
但不能用于调用分配的值。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句