2009-09-15 88 views
1

我是从我的应用程序的所有加载的程序集使用得到Product属性:获得一个组装的产品属性只具有的AssemblyName

AssemblyProductAttribute product 
    = (AssemblyProductAttribute)Attribute.GetCustomAttribute(
     assembly, typeof(AssemblyProductAttribute)); 

我想获得这个属性对所有的组件是当前加载组件参考。但是GetReferencedAssemblies()返回一个AssemblyName s的数组,所以我不能使用上面的代码来获取Product属性。

是否有一种方式来获得从AssemblyName对象,或一种方式来获得从AssemblyNameProduct属性的Assembly对象?

回答

1

那么你可以使用Assembly.Load(AssemblyName)加载程序集 - 这对你来说足够好吗?请注意,一旦您加载了程序集,除卸载AppDomain之外,您将无法卸载。当然,如果无论如何都要装载这些程序集,那没有什么坏处。 (一旦你将程序集加载到AppDomain中,再次使用相同的AssemblyName将仅返回已加载的程序集。)

+0

我相信这应该起作用 - 我不确定加载已经装载的程序的效果如何,加载组件会。 – 2009-09-15 17:48:28

+0

就我所知,应该没有问题 - 它应该返回已经加载的程序集。当我有机会时会检查。 – 2009-09-15 17:58:26

+0

该解决方案并不完美,因为它证明我的一些程序集引用了其他程序集,这些程序集未包含在我的软件中,因此触发了FileNotFoundException。 – 2009-09-15 18:04:20

相关问题