.Net WebBrowser 体系结构
本文关键字:体系结构 WebBrowser Net | 更新日期: 2023-09-27 17:56:39
我正在使用.Net webBrowser进行html解析
在我的程序中,我有一个 MainForm(表单对象)和初始化 MainForm 的程序类。
在表单中,我有webBrowser初始化,当我进入网站时,我需要处理不同的页面(从中获取数据/下载文件等)
今天,我将形式本身中的所有情况都按区域分隔为函数:
public partial class MainForm : Form
{
if(DoTypeA())
{
...
}
...
#region TYPEA
private bool DoTypeA()
{
HtmlDocument doc = webBrowser.Document ....
...
}
#endregion TYPEA
...
}
在类型 A 中,我重定向到页面并从中解析大量数据
我可以在不同的类中分离该功能吗? 以使代码更清晰。
问题是webBrowser
及其所有事件都发生在表单类中。
,最好的设计模式/架构模式是什么。
我尝试过什么:
webBrowser
对象设为公开。- 在获取
webBrowser
实例的MainForm
中制作 prop。
我看到的唯一解决方案是将 webBrowser 作为参数传递给DoTypeA(webBrowser);
但是我可以在不传递参数的情况下做到这一点吗?
谢谢。
我想到的一个灵魂是DI模式
class Types
{
IWebDriver webBrowser = null;
public Types(IWebDriver wb)
{
if(wb == null)
throw new NullReferenceException();
this.webBrowser = wb;
}
public bool DoTypeA()
{
HtmlDocument doc = webBrowser.Document //working fine
}
}
来自 MainForm 的调用
Types dt = new Types(webBrowser);
if(dt.GetTypeA())
{
//done.
}