中国站长下载-为中国站长提供最好最全的建站资源! 首 页发布资源有事留言繁體中文
设为首页
加入收藏
联系我们
 
您当前的位置:中国站长下载 -> 文章中心 -> 网页编程 -> .NET编程 -> 文章内容  虚拟主机 域名注册 退出登录 用户管理
栏目导航
· ASP编程 · .NET编程
· PHP编程 · JSP编程
· CGI 专区
热门文章
· sndvol32 - sndvol3...
· [组图] FLASH:《大话李白》...
· 个人网站到底能赚多...
· [图文] Rundll.exe是病毒吗...
· [组图] Flash:制作MV
· 价值12万元的网站SE...
· 网站创业者,你需要...
· 一个成功的网站设计...
· [图文] FLASH:韩国导航条解...
· 中国网站的赚钱模式...
相关文章
· [图文] 用ASP.NET 2.0设计网...
· [图文] 用ASP.NET 2.0设计网...
· [图文] 用ASP.NET 2.0设计网...
· [图文] 用ASP.NET 2.0设计网...
· [图文] 用ASP.NET 2.0设计网...
· ASP.NET中WebForm组...
· ASP.NET中WebForm组...
· ASP.NET中WebForm组...
· ASP.NET中WebForm组...
· ASP.NET计数器
ASP.NET可交互式位图窗体设计(6)
作者:不详  来源:不详  发布时间:2006-8-14 10:00:34  发布人:chinazhan

 减小字体 增大字体

     使我们的对象可序列化
    为在 ASP.NET 中使用可绘制对象类,我们需要对其再进行一项更改。这些类需要是可序列化的,以便能够在主要的 Web 页和生成该图像的 Web 页之间传递数据(后面将详述)。序列化是这样的过程:将某个类的数据以某种方式写入存储介质,以便存储和/或传递数据并在以后反序列化。反序列化是从序列化数据中重新创建对象的过程。我们会在将来的专栏中深入讨论这个问题。
  
    Dr. GUI 最开始作为 Windows 窗体应用程序编写此应用程序时,只使用了 .NET Framework 和操作系统预先分配的 Brushes 和 Pens 类中的可用常用画笔和笔。因为这些已经分配完毕,保持对它们的引用不会有任何妨碍,同时也无需对其进行 Dispose。
  
    但由于笔和画笔是非常复杂的对象,不能是可序列化的,因此 Dr. GUI 必须改变其策略,转而决定存储笔和画笔的颜色,然后在需要绘制和填充对象时动态创建笔和画笔。
  
    如何使之可序列化?
    序列化是 .NET Framework 的一个重要部分,因此也使序列化对象的工作变得很简单。
  
    我们只需使用 Serializable 属性标记一个类便可使之可序列化。(这与我们以前用于在枚举上将其标记为一套标志的属性是同一种属性。)在 C# 和 Visual Basic .NET 中的语法如下所示:
  
  
  C#
  
  [Serializable]
  class Foo // ...
  Visual Basic
  
  .NET _
  Class Foo ' ...
  
  
    注意:除了将类标记为可序列化外,还必须使类中包含的所有数据可序列化,否则在试图序列化数据时,序列化框架会引发一个异常。
  
    使容器可序列化
    .NET Framework 的一大优点是可以使容器类可序列化。这意味着如果将对象存储在可序列化的容器中,容器可以自动序列化对象。
  
    因此在本例中,DShapeList 类包含了两个 ArrayList 对象。由于 ArrayList 是可序列化的,因此要使 DShapeList 可序列化,只需将其标记为 Serializable 属性即可,如下所示:
  
  
  Visual Basic
  
  .NET _
  Public Class DShapeList
  Dim wholeList As New ArrayList()
  Dim filledList As New ArrayList()
  ' ...
  
  
  C#
  
  [Serializable]
  public class DShapeList {
  ArrayList wholeList = new ArrayList();
  ArrayList filledList = new ArrayList();
  
  
    假设我们放在 DShapeList 中的对象都是可序列化的,这时便可以使用单个语句序列化和反序列化整个列表!
  
    顺便说一下,这对于该应用程序的 Windows 窗体版本也是一个很好的改变,因为它使我们能够将绘图写入磁盘文件并重新加载。
  
    可绘制对象的三个版本;任何一个都可以在任何上下文中使用
    您可能已经注意到,我们有三种版本的可绘制对象代码:在 C# 和 Visual Basic .NET 中各有一个不使用我们在上面编写的 helper 方法的版本,另一个是 Visual Basic .NET 中使用 helper 方法的版本。
  
    在这里还有一点微小的差别:使用 helper 的文件中的数据类被标记为可序列化;其他文件中的数据类则没有标记为可序列化。
  
    但是,请注意下面很重要的一点:如果我们返回去并将所有文件中的数据类标记为可序列化,那么将能够在任何应用程序中使用任何类。我们将能够混合使用 C# 和 Visual Basic .NET。并且能够在 ASP.NET 应用程序中使用最初为 Windows 窗体应用程序编写的代码。
  
    这种简便的代码重用意味着您编写的代码更具价值,因为代码可以在很多不同的环境中重复使用。
  
    做人要厚道,请注明转自chinazhan中国站长(www.ChinaZhan.com)。

 
[] [返回上一页] [打 印] [收 藏]
∷相关文章评论∷    (评论内容只代表网友观点,与本站立场无关!) [更多评论...]
中国站长下载
中国站长下载

本页只接受PR>=4 IT类站点连接,申请连接,谢谢您们的支持!希望我们的下载站能够真正帮到中国的站长们!
关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站地图
Copyright © 2005-2006 ChinaZhan.Net. All Rights Reserved .