C#学习教程:获取Type中使用的程序集路径分享


获取Type中使用的程序集路径

我需要一个方法,它接受一个Type并返回该类型中使用的所有程序集的路径。 我写了这个:

public static IEnumerable GetReferencesAssembliesPaths(this Type type) { yield return type.Assembly.Location; foreach (AssemblyName assemblyName in type.Assembly.GetReferencedAssemblies()) { yield return Assembly.Load(assemblyName).Location; } } 

通常这种方法可以胜任,但也有一些缺点:

我想我通过将其替换为Assembly.ReflectionOnlyLoad()解决了Assembly.Load()问题。

现在这是我的方法的样子:

 public static IEnumerable GetReferencesAssembliesPaths(this Type type) { yield return type.Assembly.Location; foreach (AssemblyName assemblyName in type.Assembly.GetReferencedAssemblies()) { yield return Assembly.ReflectionOnlyLoad(assemblyName.FullName).Location; } } 

现在唯一剩下的问题是type.Assembly.GetReferencedAssemblies(),我如何从类型而不是从程序集中获取引用的程序集?

type.Assembly.GetReferencedAssemblies()将返回声明类型的程序集引用的所有程序集。 这并不意味着您将使用此函数获得的程序集与给定类型有任何共同之处。

上述就是C#学习教程:获取Type中使用的程序集路径分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—猴子技术宅(www.ssfiction.com)

本文来自网络收集,不代表猴子技术宅立场,如涉及侵权请点击右边联系管理员删除。

如若转载,请注明出处:https://www.ssfiction.com/ckf/1031784.html

发表评论

邮箱地址不会被公开。 必填项已用*标注