C# Tidy.NET-如何查看错误消息?

C# Tidy.NET-如何查看错误消息?,c#,.net,html,tidy,C#,.net,Html,Tidy,我的代码使用Tidy.NET“清理”HTML文档。在某些情况下,返回的HTML是空的,我不知道为什么 变量messages包含一个消息集合,其属性Count在处理HTML后的值为2。尽管知道这一点,但我不知道如何实际查看错误消息 代码如下: var tidy = new Tidy(); var input = new MemoryStream(); var output = new MemoryStream(); byte[]

我的代码使用Tidy.NET“清理”HTML文档。在某些情况下,返回的HTML是空的,我不知道为什么

变量
messages
包含一个消息集合,其属性
Count
在处理HTML后的值为2。尽管知道这一点,但我不知道如何实际查看错误消息

代码如下:

        var tidy = new Tidy();

        var input = new MemoryStream();
        var output = new MemoryStream();

        byte[] byteArray = Encoding.UTF8.GetBytes(html);
        input.Write(byteArray, 0, byteArray.Length);
        input.Position = 0;

        var messages = new TidyMessageCollection();

        tidy.Parse(input, output, messages);

        html = Encoding.UTF8.GetString(output.ToArray());

我需要做什么才能知道发生了什么事?

我找到了一个方法。您必须遍历消息集合。信息消息和警告也会添加到列表中,因此您必须检查
级别
属性get only errors(或warnings,无论您想要什么)


今天我遇到了同样的问题,通过修改TidyNet的源代码,问题得到了解决

在类
TidyMessageCollection
i中创建了一个名为
MessageLists
的公共属性,该属性公开了受保护的
InnerLists
,其中包含解析错误:

Tidy.TidyMessageCollection中

public ArrayList MessageList
{
    get { return InnerList; }
}
现在,您可以在Tidy项目外部读取
Parse
调用后的所有错误消息,如下所示:

Tidy tidy = new Tidy();    
TidyMessageCollection tmc = new TidyMessageCollection();
MemoryStream input = new MemoryStream();
MemoryStream output = new MemoryStream();

tidy.Parse(input, output, tmc);

//Same code than you
foreach(TidyMessage message in tmc.MessageList)
if (message.Level == MessageLevel.Error) 
{
    // error handling here
}

今天遇到同样的问题,但并不真正热衷于修改源代码并维护它的副本,所以这里是我的一行解决方案

var tidyErrors = (from TidyMessage msg in tmc where msg.Level == MessageLevel.Error select msg.Message).ToList();
我希望这对其他人有帮助

西蒙

var tidyErrors = (from TidyMessage msg in tmc where msg.Level == MessageLevel.Error select msg.Message).ToList();