【问题标题】:How to use internal Roslyn classes?如何使用内部 Roslyn 类?
【发布时间】:2016-04-27 15:31:10
【问题描述】:

在分析器中使用 Roslyn API 的正确方法是什么? 假设我需要从 context.Symbol 获取信息,它是一个字段。 所以很明显我可以将它转换为 IFieldSymbol 但我需要检查初始化文本。如何获取底层 SourceFieldSymbol 的属性?它是内部的!

反思? ;))))

【问题讨论】:

    标签: c# .net api compiler-warnings roslyn


    【解决方案1】:

    不要那样做。
    Roslyn 有一个设计良好的公共 API,它应该能够做任何你需要的事情(编辑器级别除外)。

    在这种特殊情况下,您应该使用DeclaringSyntaxReferences property

    一般情况下,您可以使用http://sourceroslyn.io/ 跟踪对内部属性的引用树并找到公共 API。

    【讨论】:

    • 是的,我希望 api 很好,但是如何到达字段的初始化程序?
    • 对不起人 :) 你完全正确,API 设计非常好。在我的情况下,我必须使用不同的处理程序: context.RegisterSyntaxNodeAction(AnalyzeObjectInitializer, SyntaxKind.FieldDeclaration);和类似 fieldDeclaration.Declaration.Variables[n].Initializer
    猜你喜欢
    • 1970-01-01
    • 2020-04-23
    • 2014-03-16
    • 1970-01-01
    • 2020-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多