【发布时间】:2017-01-16 02:32:35
【问题描述】:
我想在 Visual Studio 2015/2017 中扩展错误列表,我只使用 DTE 可以获得 ErrorItem,但是 ErrorItem 不包含 ErrorCode,如下所示,我怎样才能获得错误代码?提前致谢!
【问题讨论】:
标签: c# visual-studio-2015 envdte
我想在 Visual Studio 2015/2017 中扩展错误列表,我只使用 DTE 可以获得 ErrorItem,但是 ErrorItem 不包含 ErrorCode,如下所示,我怎样才能获得错误代码?提前致谢!
【问题讨论】:
标签: c# visual-studio-2015 envdte
是的,我也有这个。提供帮助可能为时已晚,但请继续:
var errorList = _dte.ToolWindows.ErrorList as IErrorList;
// placed in dictionary for easy access later
var entries = (errorList?.TableControl.Entries ?? Enumerable.Empty<ITableEntryHandle>())
.Select((e, i) => new { Entry = e, Index = i + 1 })
.ToDictionary(it => it.Index, it => it.Entry);
var errors = errorList.ErrorItems;
for (int i = 1; i <= errors.Count; i++)
{
ErrorItem error = errors.Item(i);
entries[i].TryGetValue("errorcode", out var errorCode);
var item = new
{
error.Column,
error.Description,
error.ErrorLevel,
error.FileName,
error.Line,
error.Project,
Code = errorCode
};
}
【讨论】: