C# 奇怪的程序集行为

L.Guthardt

我经历了一些奇怪的组装行为。我成功执行了一个调用并且我想要的方法被执行,但是这个方法不能访问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

L.Guthardt

由于没有人提供所需的答案,所以我会去做。我在那里遇到的问题基本上是从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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章