问题引入:
有过CF的项目经验的朋友一定常常遇到与BS后台对接的问题,HTML在BS系统中有着得天独厚的条件,他能够直接被用作界面显示,并且能够被C#代码和Javascript操作,因此在一些应用中BS系统可能采取在数据库中存储HTML表单的设计,例如一些表单可视化设计控件(Table Designer)生成的就是HTML,直接存储HTML的好处在于绕过了解析HTML DOM的复杂性,可是在前端与之对接的Mobile应用程序中就带来的问题,当我的.NET CF程序读取到包含HTML的字段后就显得很尴尬了,用正则表达式解析HTML生成WinFom界面显然不切实际,然而.NET CF似乎只为我们提供了这么一条路,因为如果用WebBroswer(以下简称WB)控件直接显示HTML,很有可能因为HTML的规格不适合PDA屏幕而使得用户体验非常糟糕,一个常见的问题就是HTML FORM的宽度超出了Mobile设备屏幕范围,而使得WB出现横向滚动条,这还不是问题的关键,关键在于你将HTML交给了WB控件之后你就没有任何控制权了,WebBrowser类为我们提供的唯一和HTML交互手段是一个叫DocumentText的属性,遗憾的是该属性是SetOnly的,也就是说只有Set访问器,那么获取表单中输入的数值就不可能了。这个问题在Full Framework(以下简称FF)中是不存在的,因为FF中的WebBroswer类为我们提供了Document属性,它返回类型为HtmlDocument的HTML DOM结构,借助该属性可以轻松的完成HTML交互任务。对于上述问题我的思路还是使用HTML DOM模型来和HTML交互,如果您使用过WebBroswer.Document属性来操作HTML,那么您应该知道HtmlDocument只不过是封装了COM接口IHTMLDocument2的对象而已,他的大部分功能都是COM中提供的,那么CF里这个接口要怎么引入呢?这就是本文要解决的问题. 有过CF的项目经验的朋友一定常常遇到与BS后台对接的问题,HTML