c# – 获取Type中使用的程序集的路径
发布时间:2020-12-15 08:21:26 所属栏目:百科 来源:网络整理
导读:我需要一个方法,它接受一个Type并返回该类型中使用的所有程序集的路径. 我写了这个: public static IEnumerablestring GetReferencesAssembliesPaths(this Type type){ yield return type.Assembly.Location; foreach (AssemblyName assemblyName in type.A
我需要一个方法,它接受一个Type并返回该类型中使用的所有程序集的路径.
我写了这个: public static IEnumerable<string> GetReferencesAssembliesPaths(this Type type) { yield return type.Assembly.Location; foreach (AssemblyName assemblyName in type.Assembly.GetReferencedAssemblies()) { yield return Assembly.Load(assemblyName).Location; } } 通常这种方法可以完成这项工作,但也有一些缺点: >我没有找到如何从类型本身获取引用的程序集/类型,所以我使用了type.Assembly.GetReferencedAssemblies()并获得了整个程序集的引用,而不仅仅是那些与类型相关的引用. 解决方法
我想通过将其替换为Assembly.ReflectionOnlyLoad()解决了Assembly.Load()问题.
现在这是我的方法的样子: public static IEnumerable<string> 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(),我如何从类型而不是从程序集中获取引用的程序集? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |