Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Assembly.GetCustomAttributes仍然被认为是最佳方法?_C#_.net_Reflection_.net 4.0 - Fatal编程技术网

C# Assembly.GetCustomAttributes仍然被认为是最佳方法?

C# Assembly.GetCustomAttributes仍然被认为是最佳方法?,c#,.net,reflection,.net-4.0,C#,.net,Reflection,.net 4.0,我想指向DLL的目录并读取其中类的属性。大多数类都有一个自定义属性,其中包含我想要读取的各种属性 我有一些使用Assembly.GetCustomAttributes的旧代码 这仍然被认为是最好的方法吗?Assembly.GetCustomAttributes获取程序集的属性,这是程序集的元数据。这通常放在AssemblyInfo.cs中,而它们可以放在任何地方 它不应与类自定义属性或属性/方法/字段/等混淆 如果您的意思是希望通过具有标识感兴趣的程序集的自定义属性来筛选出要查找的程序集,那么这

我想指向DLL的目录并读取其中类的属性。大多数类都有一个自定义属性,其中包含我想要读取的各种属性

我有一些使用Assembly.GetCustomAttributes的旧代码


这仍然被认为是最好的方法吗?

Assembly.GetCustomAttributes
获取程序集的属性,这是程序集的元数据。这通常放在
AssemblyInfo.cs
中,而它们可以放在任何地方

它不应与
自定义属性或属性/方法/字段/等混淆


如果您的意思是希望通过具有标识感兴趣的程序集的自定义属性来筛选出要查找的程序集,那么这是一种有效的方法。但是,请记住,要读取此类属性,首先需要将程序集加载到内存中。

反射是读取自定义属性的唯一方法。某些伪自定义属性反映在System.Type类的属性上。无法从appdomain卸载“正常”加载的程序集,因此理想情况下,您希望将程序集加载到仅反射上下文中(有方法System.reflection.Assembly.ReflectionOnlyLoad和ReflectionOnlyLoadFrom),以便在获得所需信息时卸载它们