gpt4 book ai didi

c# - C# 中的解析器 FxCop 结果 Xml 文件

转载 作者:行者123 更新时间:2023-11-30 22:21:17 25 4
gpt4 key购买 nike

我以编程方式使用 VS2010 和 Fxcop 10.0 (fxcopcmd.exe) 生成 fxcop 分析结果(xml 文件)

我想要 fxcop 分析结果的解析器 xml 文件。

在 java 语言中我发现了这个: http://grepcode.com/file/repo1.maven.org/maven2/org.jvnet.hudson.plugins/violations/0.7.7/hudson/plugins/violations/types/fxcop/FxCopParser.java

对解析器 C# 有什么建议吗?

最佳答案

我使用此代码获取报告中的问题数量。您也可以从 XElement 中检索实际消息

public class Parser
{
public Parser(string fileName)
{
XDocument doc = XDocument.Load(fileName);
var issues = GetAllIssues(doc);
NumberOfIssues = issues.Count;

var criticalErrors = GetCriticalErrors(issues);
var errors = GetErrors(issues);
var criticalWarnings = GetCriticalWarnings(issues);
var warnings = GetWarnings(issues);

NumberOfCriticalErrors = criticalErrors.Count;
NumberOfErrors = errors.Count;
NumberOfCriticalWarnings = criticalWarnings.Count;
NumberOfWarnings = warnings.Count;
}

public int NumberOfIssues
{
get;
private set;
}

public int NumberOfCriticalErrors
{
get;
private set;
}

public int NumberOfErrors
{
get;
private set;
}

public int NumberOfCriticalWarnings
{
get;
private set;
}

public int NumberOfWarnings
{
get;
private set;
}

private List<XElement> GetAllIssues(XDocument doc)
{
IEnumerable<XElement> issues =
from el in doc.Descendants("Issue")
select el;

return issues.ToList();
}

private List<XElement> GetCriticalErrors(List<XElement> issues)
{
IEnumerable<XElement> errors =
from el in issues
where (string)el.Attribute("Level") == "CriticalError"
select el;

return errors.ToList();
}

private List<XElement> GetErrors(List<XElement> issues)
{
IEnumerable<XElement> errors =
from el in issues
where (string)el.Attribute("Level") == "Error"
select el;

return errors.ToList();
}

private List<XElement> GetCriticalWarnings(List<XElement> issues)
{
IEnumerable<XElement> warn =
from el in issues
where (string)el.Attribute("Level") == "CriticalWarning"
select el;

return warn.ToList();
}

private List<XElement> GetWarnings(List<XElement> issues)
{
IEnumerable<XElement> warn =
from el in issues
where (string)el.Attribute("Level") == "Warning"
select el;

return warn.ToList();
}
}

关于c# - C# 中的解析器 FxCop 结果 Xml 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14477933/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com