4
我正在为Visual Studio编写VSIX扩展。使用该插件,用户可以从VS的解决方案资源管理器中选择一个类文件(因此在磁盘上的某个位置实际为.cs
文件),然后通过上下文菜单项触发我的VSIX代码,对该文件执行特定操作。从磁盘上的.cs类文件获取属性
我的VSIX扩展需要知道什么public
和internal
属性是选定的类文件。
我试图通过使用正则表达式来解决这个问题,但我有点卡住它。我无法弄清楚如何只获取该类的属性名称。它现在发现太多了。
这是正则表达式我到目前为止:
\s*(?:(?:public|internal)\s+)?(?:static\s+)?(?:readonly\s+)?(\w+)\s+(\w+)\s*[^(]
演示:https://regex101.com/r/ngM5l7/1 从这个演示中,我想提取所有属性名称,所以:
Brand,
YearModel,
HasRented,
SomeDateTime,
Amount,
Name,
Address
PS。我知道一个正则表达式不适合这种工作。但我想我没有任何其他VSIX扩展选项。
那么什么是它的预期是否匹配? – Rahul
这听起来像是对Microsoft Compiler Services(Roslyn)的很好的使用。你为什么不认为你有其他选择?我认为得到一个永远不会捕获误报的可靠的正则表达式是非常困难的。 – Crowcoder
@Crowcoder据我所知,Roslyn编译器需要“有效”的代码。所以当我给它提供其他类的'using'语句的任何类文件时,它也需要加载它们。它不能编译只存在于一个大项目中的一个类文件。 – Vivendi