适配器类型

更新:2007 年 11 月

为支持多种设备,ASP.NET 移动网页结构建立在设备适配器模型之上。移动网页和 ASP.NET 移动控件本身独立于设备,而适当选择的设备适配器集为移动页和控件提供了特定于设备的表示层。

设备适配器与各控件和目标设备的组合关联。对于任何给定的设备,每个移动控件类都可以有一个关联的唯一控件适配器类,控件的每个实例都绑定到适配器的相应实例。

对于每种设备,可以定义以下类:

  • 控件适配器基类。所有设备适配器继承自的基类。

  • 页适配器。与页关联的适配器。

  • 窗体适配器。与页上的每个窗体关联的控件适配器。

  • 控件适配器。对应于系统中的控件的控件适配器类。

  • 文本编写器。一个从 HtmlTextWriter 类继承的类,它包含特定于目标的帮助器方法。

通常,如果某些功能需要控件的上下文,则可能需要考虑将其放置在控件适配器基类中。

下表列出了适配器类型,以及每种适配器的一些特定于设备的实现的类示例。

适配器和类类型

ASP.NET 移动控件类

说明

控件适配器基类

ControlAdapter

所有设备适配器都从此基类继承。

页适配器

ChtmlPageAdapter

HtmlPageAdapter

WmlPageAdapter

XhtmlPageAdapter

与页关联的控件适配器。

窗体适配器

ChtmlFormAdapter

HtmlFormAdapter

WmlFormAdapter

XhtmlFormAdapter

与页上的每个窗体关联的控件适配器。

控件适配器

HtmlControlAdapter

WmlControlAdapter

XhtmlControlAdapter

对应于系统中的控件的控件适配器类。

文本编写器

ChtmlMobileTextWriter

HtmlMobileTextWriter

WmlMobileTextWriter

XhtmlMobileTextWriter

一个从 HtmlTextWriter 继承的类,它包含特定于目标的帮助器方法。

控件适配器基类

每个设备适配器集通常包含适用于该集中所有适配器的一个基类。ControlAdapter 基类提供特定于设备类的常用功能。它通常由需要控件或页上下文的帮助器方法组成。这些帮助器方法包括:

  • 呈现控件回发事件的方法。

  • 呈现控件样式属性的方法。每种设备的样式属性的处理方式不同,因此每个适配器具有不同的样式呈现实现。

  • 向 ASP.NET 页框架或向包含页或窗体的适配器提供设备特定信息的可重写方法。

  • 访问包含页或窗体的适配器的便利属性。

建议您提供的控件适配器基类也从 ControlAdapter 类(它是一个通用基类)继承。该类提供 IControlAdapter 接口的默认实现,所有适配器都需要该接口。建议基类的默认呈现实现呈现所有的子控件。这样使您能够将基类用作复合控件的适配器。

页适配器类

每个设备适配器集都有一个与移动页本身关联的页适配器类。每个移动页的实例(即从 MobilePage 对象继承的每个页类)都绑定到一个特定于目标设备的页适配器。页适配器通常包含以下内容:

  • 特定于设备的回发和视图状态功能。

  • 保存和加载特定于设备的控件状态(如分页信息)的方法。

  • 用于准备返回到客户端的响应的初始化代码。这包括将响应的 MIME 类型设置为适当的格式。

  • 用于呈现返回到客户端的页主干的 Render 方法。例如,基于 HTML 的页适配器通常至少呈现 <html> 开始和结束标记。

  • 其他特定于设备的页级功能,例如为支持在单个响应中返回多页的设备汇编一个页适配器。

页适配器类必须提供 IPageAdapter 接口的完全实现。通常情况下,编写的页适配器类必须从相应的控件适配器类继承。例如,如果专门为基于 WML 的设备编写,应从 WmlControlAdapter 类继承。有关适配器类的更多信息,请参见设备适配器代码

窗体适配器类

每个设备适配器集都有一个与 Form 类关联的窗体适配器类。窗体的每个实例都绑定到一个特定于目标设备的窗体适配器。窗体适配器通常包含以下内容:

  • 处理特定于设备的窗体交互性的方法。

  • 处理单个窗体对不同设备的适配性的方法。这可能包括将一个窗体分页或将多个窗体元素组合为一个菜单的代码。

  • 呈现窗体主干的 Render 方法。例如,基于 WML 的页适配器通常至少呈现 <card> 开始和结束标记。

文本编写器类

文本编写器类不是适配器类,而是从 System.Web.UI.HtmlTextWriter 类继承的类。文本编写器类的实例通过用于呈现的每个适配器来创建和传递:所有呈现都通过该对象执行。文本编写器通常包含执行数据编码这类任务的帮助器方法。

请参见

其他资源

添加新的设备适配器和设备支持