我需要克隆一个HtmlDocument对象,我想避免序列化/反序列化。 HtmlNode具有克隆(深层)功能,所以我想克隆文档节点,但我无法从文档节点重新创建HtmlDocument。
有什么建议吗?
答案 0 :(得分:0)
最终我做了这个(作为扩展功能):
public static HtmlDocument Clone(this HtmlDocument source)
{
if (source == null)
{
return null;
}
HtmlDocument clone = new HtmlDocument();
PropertyInfo[] infos = typeof(HtmlDocument).GetProperties();
foreach (PropertyInfo pinfo in infos)
{
if (pinfo.CanRead && pinfo.CanWrite)
{
pinfo.SetValue(clone, pinfo.GetValue(source));
}
}
clone.DocumentNode.CopyFrom(source.DocumentNode, true);
return clone;
}
似乎可以做到这一点。
欢迎评论。