从C#源代码中提取属性而不使用Reflection

6
我希望从不同的.CS文件的源代码中提取自定义属性。我有文件列表。
场景是我有一个名为Project A的项目,它读取Project B的文件。它必须提取Project B中使用的所有属性。
我的问题是如何在不使用反射的情况下完成这项工作。 反射处理程序集,但我有源代码。
使用Roslyn会过度杀伤?
有哪些方法可以使用?
我还有另一个选项,使用MSBuild进行编译,但对于大规模项目来说,由于依赖重,这将不可行。构建应用程序然后去构建其程序集似乎也不是一种好的方法。
我只想要一些东西告诉我哪个类上有什么属性,可能还有一个关系的UML图。
请提出你的建议。

2
你能提供一些例子吗?如果你的代码布局相当一致,那么使用正则表达式可能是可行的。但是,即使你有源代码,使用反射也没有问题...它相当容易和高效。 - mellamokb
1
你觉得像http://irony.codeplex.com/这样的东西怎么样?或者使用另一个代码解析器来提取结果呢? - Dave
你如何使用反射(reflection)…… - Afnan Bashir
1
这个问题没有意义。你可以通过解析源代码来挖掘属性。但是你不知道这个属性实际上表示什么。你会得到[Foo],它是做什么的?需要运行查找属性并对其执行某些操作的代码。 - Hans Passant
@AfnanBashir:您仍然需要构建源代码,并知道要反映哪些类型,而不是哪些源文件。但是使用反射,您可以轻松访问有关代码的语义信息和所有属性。 - mellamokb
我同意,它比正则表达式或解析器好多了......那他应该用什么呢?MSBuild...............? - Afnan Bashir
1个回答

3

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接