Como validar um arquivo html com c #?

Eu tenho um aplicativo c # que recebe um arquivo html. Eu quero analisar e validar. Na saída, ele retornará uma lista de erros ou que meu html é válido.

Alguém tem alguma idéia de como posso fazer isso?