【发布时间】:2026-01-16 12:30:01
【问题描述】:
我见过Attributes and Reflection,现在我知道如何创建和使用反射来查看属性的元数据,但是是否有可能制作一个可以分析cs 文件并提取使用的属性的独立工具?
我想做什么?
基本上,我正在开发一个以C# code 作为输入的工具。下一步是查看该源代码中使用了哪些属性。提取Intrinsic 和Custom Attributes。
有问题吗?
如果您在定义了attributes 的同一个项目中使用reflection,这是有意义的,但是I do not know in what direction I should move 编写一个单独的工具,可以为您提供上述提取的静态和属性元数据。
有人说我应该使用Regex 来提取文件中的属性,而其他人说我需要使用Irony - .NET Language Implementation Kit
此外
以上工作将使我拥有一个应用程序,该应用程序将用于来自Source Code 的attributes(annotation) based Design Pattern Recovery。我不太清楚Regex 是否会来救援,或者我需要类似Reflection 的东西。由于反射处理运行时。我不必处理运行时间。只是静态文件分析
【问题讨论】:
-
我无法理解反射和 C# 项目文件是如何与您的问题相关联的。如果您使用反射 - 您正在使用已编译的可执行文件或 dll,因此您不需要解析项目文件。如果您需要使用源 - 您不能使用反射
-
@Archeg 文件只是为了阅读源代码,看看实现了什么。如果我必须使用源代码,我应该使用什么而不是反射?
-
如果你真的需要解析源代码,我会看 Rosalyn。但我从未使用过它,所以不确定它是否适合你。您确定需要解析源代码吗?为什么反射不适合你?
-
也许你可以写更多关于你的任务的东西。为什么需要这些属性?例如,如果您只需要列出代码中使用的所有属性,简单的 Regex 就足够了。
-
很难通过 System.CodeDom.Compiler 将相当大的任务变成微不足道的任务。
标签: c# reflection attributes custom-attributes