问题标签 [roslyn-code-analysis]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1510 浏览

c# - CSharpScript.EvaluateAsync 中的异常行号

我正在使用该CSharpScript.EvaluatyAsync<T>方法评估脚本并传递一些 C# 代码。当出现解析问题时,我可以很容易地看到错误的行号,例如语法错误,但是当出现运行时异常时,在这种情况下,我得到的只是AggregateException包装我的异常(NullReferenceException),但不知道如何为我获取行号(在下面的示例中为 3)。

编辑:

我一直在研究这个,发现脚本 API在第 127 行创建了一个没有 pdb 信息的程序集,所以这将不可能知道异常发生在哪里。我对吗?

0 投票
1 回答
1238 浏览

c# - 如何使用 Roslyn / 代码分析阅读 XML 文档注释

我想使用 Roslyn 从我的 C# 代码中检索元素(如类、属性)的 XML 文档。但是,我发现的唯一相关方法是GetDocumentationCommentXml,它只给了我整个 XML,而不是解析的元素。

另一篇 SO 帖子中,有人问了同样的问题并得到了答案。但是这个问题已经存在 3 年了,并且 API 发生了变化:建议的GetDocumentationComment方法不再存在。

0 投票
0 回答
345 浏览

c# - StyleCop Analyzers 规则 SA1515 违规仅在输出窗口中输出,而不在错误列表窗口中输出

我已经安装了 StyleCop.Analyzers nuget(它是 1.0.0 版),并且我已经配置了 SA1515(单个注释必须以空行开头)以在违规时出错。

然而下面的代码

仅在输出窗口中显示违规为

但错误窗口中没有曲线和条目。更改///to//会使错误立即出现在错误列表中。

有没有办法调试它以找到错误点?我已经在 Visual Studio 中打开了从 GitHub 获得的源代码,在该规则类中的一次调用上设置了一个断点context.ReportDiagnostic,设置为在调试启动时启动另一个 VS 实例,在其中打开 ConsoleApplication6 并且从未遇到断点。

0 投票
2 回答
593 浏览

c# - 运行时对象引用跟踪

我很好奇是否可以在运行时跟踪对象引用下的操作(复制、访问等)。例如,如果我调试以下代码:

并在 中设置断点GetListElementsCount,我可以查看list参数来源和对其所做的更改(a、b、c、d)吗?Roslyn 编译器是否为此提供了一些 C# API?

非常感谢。

0 投票
7 回答
4250 浏览

c# - 在解决方案中查找缺少的等待

我的服务器代码中有很多异步方法,但我怀疑我有没有等待的调用者。

有没有一种简单的方法来扫描代码以查找缺少 await 的调用?

然后在某个地方我忘了使用等待;

我希望有一种聪明的方法来识别这些错误的调用。

0 投票
1 回答
107 浏览

c# - 便携式 Roslyn Analyzer C# vS2015 Team Foundation Server Nuget 包支持

我正在尝试编写一个带有代码修复的基本诊断分析器(涉及对 TFS 的调用、工作项创建和更新)

目标框架是 .Net framework 4.5、ASP.Net Core 1.0、Windows 8、Windows Phone Silver light 8。

当我尝试添加 Microsoft.TeamFoundationServer.ExtendedClient 时,收到以下错误

安装包:Microsoft.TeamFoundationServer.ExtendedClient 14.95.3 与 .NETPortable、Version=v4.5、Profile=Profile78 不兼容。在 line:1 char:1 + Install-Package Microsoft.TeamFoundationServer.ExtendedClient + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [Install-Package], Exception + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet。 PackageManagement.PowerShellCmdlets.InstallPackageCommand

我也试过 Microsoft.TeamFoundationServer.Client 并得到同样的错误。

任何帮助克服这个问题将不胜感激。

我还尝试通过执行以下操作将分析器项目的目标框架更改为 NetStandard 1.5 1)卸载所有 nuget 包 2)更改目标框架 3)安装包 NETStandard.Library 1.5.0-rc2-24027 4)重新安装代码分析包 - 在这里失败,说代码分析的 v1.22 不兼容。

0 投票
2 回答
960 浏览

c# - 控制流图,使用 Roslyn 进行内部/内部数据流分析,.NET 编译器平台

我读过 Roslyn 不提供本地 CFG 实现,也不提供公共的数据流间或数据流内分析。然而,这是一个基于 Roslyn RC2 的源代码,它可能已经很老了。今天还是这样吗?

我正在尝试进行污点分析,即我应该能够在变量通过函数或分配给其他变量后对其进行跟踪。

任何帮助将不胜感激!谢谢!

0 投票
1 回答
1291 浏览

c# - 如何使用 Roslyn 获取方法调用/类声明的全名路径

如何使用 Roslyn 获取方法调用的完整限定名?

例如, Request.QueryString来自System.Web.UI,我怎么能检测到呢?

如何在同一个项目中声明类但不同的命名空间?以及来自同一项目的其他类的函数调用。

感谢任何形式的帮助,谢谢!

0 投票
1 回答
759 浏览

c# - 使用 Roslyn 创建命名空间代码重构

我正在尝试使用 Roslyn 创建代码重构扩展。我想要做的是根据我的默认命名空间重构命名空间。kuku.riku.example当命名空间只有单个单词但我的命名空间看起来像这样并且我将默认命名空间更改aaa为结果时,它会成功找到并替换命名空间kuku.riku.aaa而不是aaa. 我究竟做错了什么?

我的代码:

0 投票
1 回答
706 浏览

c# - .NET Roslyn:运行时配置

我将使用 Roslyn 代码分析器开发一些规则。这条规则是为了控制一个命名空间的访问。例如,DAL 只能使用核心。如果视图使用 DAL,我想要一个警告。

我使用“Visual Studio 2015 Community Edition”中的“Analyzer with Code Fix (NuGet + VSIX)”模板来生成插件。

我做了一些测试,它工作正常。但是,该规则在代码中很难写。我不知道如何在运行时配置规则。最好是解决方案或项目中的配置文件。

你能给我举个例子吗?

感谢。

解决方案简历:

  1. 在分析的项目中添加 Visual Studio 中的文件。
  2. 用编辑器打开 .csproj 修改配置文件的项组。

    <None Include="test.txt" /> -> <AdditionalFiles Include="test.txt" />

读取文件的示例