• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >ASP.NET > ASP.NET2.0服务器控件之类型转换器

ASP.NET2.0服务器控件之类型转换器

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了asp net2.0,iis注册asp.net2.0,注册asp.net2.0,net2.0,net2.0官方下载等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

  类型转换器是实现自定义服务器控件属性过程中比较重要的内容。本文将对类型转换器的基本概念和实现方法进行介绍。

  1. 类型转换器基本概念

  类型转换器是自定义服务器控件的辅助性功能实现。它主要用于执行从字符串表示形式到指定类型之间的双向转换。例如,以文本形式表示属性值,将用户输入的文本转换为相应数据类型等等,都应用了类型转换器。

  对于多数基本数据类型(如Int32、Bool、Char、String、枚举类型等),.net框架已经为它们提供了默认的类型转换器,这些类型转换器完成从字符串到相关值的转换并执行验证检查的功能。默认的类型转换器派生自System.ComponentModel.TypeConverter类,名为TypeConverterNameConverter。例如,当开发人员在*.ASPx文件中设置服务器控件属性时会发现,某些属性值为基本类型,即Bool、Char、Enum、Int等,但是,一律被设置为String类型,这就牵扯到一个类型转换的问题。例如,属性Height="150px",属性值"150px"在设置时是String类型,而这里的属性值应当作为Unit类型,那么所面临的问题就是必须要求页面编译器将字符串"150px"转换为Unit类型。通常情况下,对于属性值为基本类型的属性,页面编译器将自动应用相关的类型转换器完成转换工作。在刚才的例子中,页面编译器将自动调用类型转换器System.Web.UI.WebControls.UnitConverter完成String类型与Unit类型之间的相互转换。

  然而,上面的方法只能解决少数比较简单的类型转换问题,并且在多数情况下,相关的类型转换过程都是默认自动完成的。当默认类型转换器无法满足需要时,例如,对于复杂属性的情况,是没有关联的默认类型转换器时,则可以通过实现自定义类型转换器来实现。

  自定义类型转换器是本文的重点内容。按照自定义类型转换器的功能分类,可以将自定义类型转换器分为3种:

  · 值翻译的类型转换器;

  这种类型转换器最为常见,它主要完成从字符串到值得转换,或用于在设计时和运行时进行数据类型之间的双向翻译。例如,实现从String类型转换为表示在二维平面中定义点的、整数X和Y坐标的有序对Point类型,或者从Point类型转换为String类型。此处的String类型与Ponit类型之间的双向转换,则需要实现一个值翻译的类型转换器。

  · 向属性窗口提供标准值列表的类型转换器;

  在Visual Studio 2005中包括控件属性窗口。类型转换器可以为属性窗口中控件的类型提供一个值列表。当开发人员单击值列表时,则可以方便的在下拉列表中设置属性的值。

  · 在运行时为属性初始化生成代码的类型转换器;

  .NET Framework 提供了在设计时生成动态属性初始化代码(此代码在运行时初始化属性)的功能。开发人员可以构建一个产生基于构造函数的初始化代码的类型转换器。为了在运行时配置类型属性,这些类型转换器可以使用在设计时设置的值来动态生成构造函数代码。类型转换器实现逻辑以配置属性的类型和构造函数的值。

  实现以上3种类型转换器都要求自定义类型转换器的类必须继承自System.ComponentModel.TypeConverter基类,或者TypeConverter类的已有子类。下面简单介绍一下TypeConverter及其子类的基本情况。

  TypeConverter类主要提供了一种将值的类型转换为其他类型,以及访问标准值和子属性的统一方法。该类包括多个成员方法。对于创建自定义类型转换器而言,读者应了解以下几个常见方法:

  (1)CanConvertFrom方法:返回该转换器是否可以将一种类型的对象转换为此转换器的类型。

  (2)ConvertFrom方法:将给定值转换为此转换器的类型。

  (3)CanConvertTo方法:返回此转换器是否可将该对象转换为指定的类型。

  (4)ConvertTo方法:将给定值对象转换为指定的类型。

  (5)IsValid方法:返回给定值对象对于此类型是否有效。

  (6)GetStandardValuesSupported方法:返回此对象是否支持可以从列表中选取的标准值集。

  (7)GetStandardValues方法:返回此类型转换器设计用于的数据类型的标准值集合。

  TypeConverter类是实现类型转换器的基础。为了支持默认类型转换功能,ASP.NET 2.0还对TypeConverter类进行了扩展,其内置了多个派生类。例如,CharConverter、DateTimeConverter、ExpandableObjectConverter、EnumConverter等。它们在完成类型转换的同时,还可以帮助开发人员创建自定义类型转换器,例如,可创建继承自ExpandableObjectConverter类的类型转换器,该基类提供了在可扩展对象与其他各种表示形式之间实现转换的类型转换器。这样就可以简化(相对于从TypeConverter基类)创建类型转换器的过程。

  另外,在使用已有类型转换器过程要注意:无论何时都不要直接访问类型转换器。而应通过使用TypeDescriptor调用适当的转换器。

  当实现类型转换器之后,可以使用如下方法应用类型转换器。

[TypeConverter(typeof(MyClassConverter))]
public class MyClass {
 // Insert code here.
}

  以上代码显示了类型转换器的应用方法。其通知MyClass使用名为MyClassConverter的类型转换器。此示例假定已在其他位置实现了MyClassConverter。在应用过程中需要注意,元数据属性TypeConverter通常应用于复杂属性或数据成员,以将其与类型转换器关联。如果将TypeConverter应用于类型,则不必将其再次应用于该类型的属性或数据成员。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • ASP.NET 2.0中的数据操作之九:跨页面的主/从报表
  • ASP.NET 2.0中的数据操作之八:使用两个DropDownList过滤的主/从报表
  • ASP.NET 2.0中的数据操作之七:使用DropDownList过滤的主/从报表
  • ASP.NET2.0使用Enter Key作为默认提交问题分析(附源码)
  • asp.net2.0中css失效的解决方法
  • Asp.net 2.0 无刷新图片上传 显示缩略图 具体实现
  • ASP.NET2.0缓存(Cache)技术深入理解
  • ASP.NET2.0中用Gridview控件操作数据的代码
  • ASP.NET 2.0 程序安全的基础知识
  • asp.net 2.0中利用Ajax2.0实现JSON传送大量页面数据

相关文章

  • 2018-08-20MVC+EasyUI+三层新闻网站建立 验证码生成(三)
  • 2017-05-11动态加载用户控件至DataList并为用户控件赋值实例演示
  • 2017-05-11asp.net 在处理向该请求提供服务所需的配置文件时出错
  • 2018-08-20jQuery+Asp.Net实现省市二级联动功能的方法
  • 2018-08-20Debian 8或Debian 9(64 位)安装 .NET Core
  • 2017-05-11基于ASP.NET+EasyUI框架实现图片上传提交表单功能(js提交图片)
  • 2017-05-11KindEditor图片上传的Asp.net代码实例
  • 2017-05-11VS2015开发环境的安装和配置
  • 2017-05-11.NET微信公众号查看关注者接口
  • 2017-05-11ASP.NET方法如何重载需要必备哪些条件

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • asp.net 该行已经属于另一个表错误的解决方法
    • 剖析Asp.Net Web API路由系统---WebHost部署方式
    • 介绍几个ASP.NET中容易忽略但却很重要的方法函数
    • 在FireFox/IE下Response中文文件名乱码问题解决方案
    • Community Server专题三:HttpModule
    • ASP.NET MVC5网站开发用户修改资料和密码(六)
    • ASP.NET入门数据篇
    • ASP.NET编程获取网站根目录方法小结
    • .dll 文件反编译的工具软件集合
    • .net开发微信公众平台实例教程

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有