我想指向一个DLL的目录并读取其中的类的属性。大多数类都有一个自定义属性,包含我想要读取的各种属性。Assembly.GetCustomAttributes仍然被认为是最好的方法?
我有一个使用Assembly.GetCustomAttributes
难道这仍然被认为是最好的办法了一些旧的代码?
我想指向一个DLL的目录并读取其中的类的属性。大多数类都有一个自定义属性,包含我想要读取的各种属性。Assembly.GetCustomAttributes仍然被认为是最好的方法?
我有一个使用Assembly.GetCustomAttributes
难道这仍然被认为是最好的办法了一些旧的代码?
Assembly.GetCustomAttributes
获取组件的元数据 - 这是组件的元数据。这通常放在AssemblyInfo.cs
,而它们可以放在任何地方。
它不应该与class
自定义属性 - 或财产/方法/领域/等混淆。
如果你的意思是你想通过一个自定义属性标识出这样的感兴趣的程序集来过滤掉程序集来寻找,那么这是一个有效的方法。但是,请记住,要读取这些属性,首先需要将程序集加载到内存中。
反射是读取自定义属性的唯一方法。一些伪自定义属性反映在System.Type类的属性上。 “正常”加载的程序集不能从appdomain卸载,所以理想情况下,您希望将程序集加载到仅反射上下文(有方法System.Reflection.Assembly.ReflectionOnlyLoad和ReflectionOnlyLoadFrom),以便可以在需要时卸载它们信息。