roslyn-code-analysis

    3热度

    1回答

    我试图用常规C#SyntaxFactory从零开始构造nameof表达式。不幸的是,出于某种原因,Roslyn未能将我的InvocationExpressionSyntax识别为上下文nameof关键字,并在Emit命令后引发错误诊断。 在找出错误的过程中,我试着给Roslyn一些有效的代码进行解析,希望能够找到我的语法构造和“正确解析的”之间的一些区别。我在实验上能够很快地追踪到“nameof”

    1热度

    1回答

    我试图编写一个分析器来获取有关使用roslyn语法树的一些方法的信息。问题是:我正在编写的分析器需要与我想分析的解决方案处于相同的解决方案中。 所以,这是我的代码: using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CSharp.Syntax; using System; using System.Collections.G

    0热度

    1回答

    我想使用Roslyn在给定的Visual Studio解决方案中分析特定的类。在这个分析过程中,我希望获得该类正在使用的所有接口。 我见过几个例子,甚至可以检索整个解决方案的接口(检索InterfaceDeclarationSyntax的类型),但我想知道是否有可能获得'外部'接口,即接口属于类正在引用和使用的外部dll。 我会感谢您的帮助! 说明:我不只是指类实现的接口,而且也指类中可能的成员,

    1热度

    1回答

    Roslyn文档给出了下面的示例,作为编译某些代码并显示任何编译错误的一种方式。 我想知道是否有人知道在下面的例子中对变量sourceCode中包含的代码执行一些静态代码分析的方法。我已经将StyleCop.Analyzers添加到了我的测试项目中,但在此阶段我无法看到如何使用它来执行样式分析(例如可读性)。 使用StyleCop.Analyzers来做到这一点是否可行或者是否有其他方法?任何建议

    1热度

    1回答

    假设我在代码SomeClass.SomeStaticMethod<T>()中调用了一个InvocationExpressionSyntax。 我将泛型类型T的名称作为字符串(来自IdentifierNameSyntax)。我试图让T的符号,但我没有成功。 如何找出T型的命名空间信息? 更新:@SJP的答案是正确的。我想解释一下我的错,谁想要摆脱IdentifierNameSyntax,其中包含一个

    0热度

    1回答

    我正在开发Roslyn分析器来检测特定方法的使用,method1。我想允许在for和while循环中使用此方法,并在代码中的所有其他情况下创建一个问题。 我该怎么做?我开发的代码随处可见method1。每次我找到函数时,我都会想要检查它是否在循环中,并且只有在循环中不产生错误。

    0热度

    1回答

    我想有一个分析器检测所有对setter属性的调用,而不是在实现特定接口的对象的对象初始值设定项内部。我有点失去了如何检测,文档有点薄。我可以得到一个调用表达式,但是如何检查它是否在对象初始值设定项中? 任何想法?

    1热度

    1回答

    我有分析器建设得到 <Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFramework>net461</TargetFramework> <GenerateAssemblyInfo>false</GenerateAssemblyInfo> <PackageId>Weingartner.Json

    0热度

    1回答

    我看到在在的csproj VS 2017年企业以下,PROJECT1,这是正在兴建的.Net 4.5.2: 18>------ Rebuild All started: Project: Project1, Configuration: Debug Any CPU ------ 18>C:\git\27844-2-StyleCop\company\Class1.cs(26,31,26,47):

    0热度

    2回答

    我需要将任何C#或VB.NET项目编译为.NetModule。我有下面的示例代码,其中发出DLL,需要一些帮助来修改以下从.csproj得到.NetModules 在此先感谢。 // Required Microsoft.CodeAnalysis 1.3.0 class Program { static void Main(string[] args)