gpt4 book ai didi

c# - 使用 IHTMLDocuments 1、2、3 和 4

转载 作者:行者123 更新时间:2023-11-30 17:24:31 27 4
gpt4 key购买 nike

我在当前项目中使用网络浏览器,目前我在设计模式下使用它以使其可编辑等。我当前使用的代码是:

WebBrowser.Document.DomDocument as IHTMLDocument2

IHTMLDocument2、3 或 4 实际上是什么?我还发现,在识别文档中的当前选择范围时,range.text.replace 方法的工作方式与 string.replace 不同。

有人可以向我解释 IHTMLDocuments 和 IHTMLTxtRange 的基本功能吗?

最佳答案

IHTMLDocument 是一个接口(interface),它本质上是一个“牢不可破”的契约,表示实现它的对象将提供的内容。

在迁移到新版本代码时更改接口(interface)会破坏该契约,进而破坏依赖该契约的代码。

假设您创建:

public interface IMyInterface {
public int Property1 { get; set; }
}

一年后您需要添加 Property2,但您无法更改界面。所以解决这个问题的一种方法是创建:

public interface IMyInterface2 {
public int Property2 { get;set; }
}

然后使用实现 IMyInterface 的旧类:

public class MyObject : IMyInterface, IMyInterface2 {
public int Property1 { get {} set {} }
public int Property2 { get {} set {} }
}

这样你就不会破坏旧契约(Contract),但可以在代码中使用新接口(interface),例如:

if (obj is IMyInterface) {
Console.WriteLine(((IMyInterface)obj).Property1);

if (obj is IMyInterface2) {
//more
}
}

这就是微软所做的。 IHTMLDocument 所在的 mshtml 库是一个 COM 库,COM 严重依赖于接口(interface)。因此,随着库的发展,Microsoft 添加了越来越多的接口(interface)来公开更新的功能/代码。

IHTMLTxtRange 是比较常用的TextRange 的接口(interface)目的。它公开了一堆用于解析文本“片段”或“范围”的功能。

http://www.webreference.com/js/column12/trmethods.html

关于c# - 使用 IHTMLDocuments 1、2、3 和 4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/838948/

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