六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網(wǎng)中心:是一個免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

ASP.NET可交互式位圖窗體設(shè)計(jì)(6)

[摘要]使我們的對象可序列化   為在 ASP.NET 中使用可繪制對象類,我們需要對其再進(jìn)行一項(xiàng)更改。這些類需要是可序列化的,以便能夠在主要的 Web 頁和生成該圖像的 Web 頁之間傳遞數(shù)據(jù)(后面將詳述)。序列化是這樣的過程:將某個類的數(shù)據(jù)以某種方式寫入存儲介質(zhì),以便存儲和/或傳遞數(shù)據(jù)并在以后反序...
 使我們的對象可序列化
    為在 ASP.NET 中使用可繪制對象類,我們需要對其再進(jìn)行一項(xiàng)更改。這些類需要是可序列化的,以便能夠在主要的 Web 頁和生成該圖像的 Web 頁之間傳遞數(shù)據(jù)(后面將詳述)。序列化是這樣的過程:將某個類的數(shù)據(jù)以某種方式寫入存儲介質(zhì),以便存儲和/或傳遞數(shù)據(jù)并在以后反序列化。反序列化是從序列化數(shù)據(jù)中重新創(chuàng)建對象的過程。我們會在將來的專欄中深入討論這個問題。
  
    Dr. GUI 最開始作為 Windows 窗體應(yīng)用程序編寫此應(yīng)用程序時,只使用了 .NET Framework 和操作系統(tǒng)預(yù)先分配的 Brushes 和 Pens 類中的可用常用畫筆和筆。因?yàn)檫@些已經(jīng)分配完畢,保持對它們的引用不會有任何妨礙,同時也無需對其進(jìn)行 Dispose。
  
    但由于筆和畫筆是非常復(fù)雜的對象,不能是可序列化的,因此 Dr. GUI 必須改變其策略,轉(zhuǎn)而決定存儲筆和畫筆的顏色,然后在需要繪制和填充對象時動態(tài)創(chuàng)建筆和畫筆。
  
    如何使之可序列化?
    序列化是 .NET Framework 的一個重要部分,因此也使序列化對象的工作變得很簡單。
  
    我們只需使用 Serializable 屬性標(biāo)記一個類便可使之可序列化。(這與我們以前用于在枚舉上將其標(biāo)記為一套標(biāo)志的屬性是同一種屬性。)在 C# 和 Visual Basic .NET 中的語法如下所示:
  
  
  C#
  
  [Serializable]
  class Foo // ...
  Visual Basic
  
  .NET _
  Class Foo ' ...
  
  
    注意:除了將類標(biāo)記為可序列化外,還必須使類中包含的所有數(shù)據(jù)可序列化,否則在試圖序列化數(shù)據(jù)時,序列化框架會引發(fā)一個異常。
  
    使容器可序列化
    .NET Framework 的一大優(yōu)點(diǎn)是可以使容器類可序列化。這意味著如果將對象存儲在可序列化的容器中,容器可以自動序列化對象。
  
    因此在本例中,DShapeList 類包含了兩個 ArrayList 對象。由于 ArrayList 是可序列化的,因此要使 DShapeList 可序列化,只需將其標(biāo)記為 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();
  
  
    假設(shè)我們放在 DShapeList 中的對象都是可序列化的,這時便可以使用單個語句序列化和反序列化整個列表!
  
    順便說一下,這對于該應(yīng)用程序的 Windows 窗體版本也是一個很好的改變,因?yàn)樗刮覀兡軌驅(qū)⒗L圖寫入磁盤文件并重新加載。
  
    可繪制對象的三個版本;任何一個都可以在任何上下文中使用
    您可能已經(jīng)注意到,我們有三種版本的可繪制對象代碼:在 C# 和 Visual Basic .NET 中各有一個不使用我們在上面編寫的 helper 方法的版本,另一個是 Visual Basic .NET 中使用 helper 方法的版本。
  
    在這里還有一點(diǎn)微小的差別:使用 helper 的文件中的數(shù)據(jù)類被標(biāo)記為可序列化;其他文件中的數(shù)據(jù)類則沒有標(biāo)記為可序列化。
  
    但是,請注意下面很重要的一點(diǎn):如果我們返回去并將所有文件中的數(shù)據(jù)類標(biāo)記為可序列化,那么將能夠在任何應(yīng)用程序中使用任何類。我們將能夠混合使用 C# 和 Visual Basic .NET。并且能夠在 ASP.NET 應(yīng)用程序中使用最初為 Windows 窗體應(yīng)用程序編寫的代碼。
  
    這種簡便的代碼重用意味著您編寫的代碼更具價(jià)值,因?yàn)榇a可以在很多不同的環(huán)境中重復(fù)使用。




主站蜘蛛池模板: 五级床片全部免费播放 | 一级女人18片毛片免费视频 | 片在线观看| 亚洲一区二区三区高清视频 | 在线观看欧美视频 | 亚洲国产天堂在线观看 | 亚洲第一天堂无码专区 | 婷婷六月久久综合丁香乐透 | 屁屁影院免费观看入口 | 日韩三级一区 | 四虎免费在线 | 日日干日日干 | 四虎免费最新在线永久 | 日本精品一区二区 | 青青草好 | 婷婷影院在线综合免费视频 | 亚洲视频在线观看网站 | 青草久久精品 | 欧美性xxxx交 | 中文字幕在线观看第一页 | 午夜国产精品影院在线观看 | 桃色视频网 | 青娱极品盛宴国产精品分类 | 日本免费人做人一区在线观看 | 日韩亚洲一区二区三区 | 欧洲性xxxx免费视频下载软件 | 三级黄色片免费 | 日日爱网址| 日韩a级片在线观看 | 亚洲免费高清视频 | 青青草原免费在线视频 | 香蕉视频w | 亚洲男人的天堂网站 | 亚洲精品国产福利 | 性色午夜视频免费男人的天堂 | 色综合久久久久久久久久久 | 亚洲一区在线免费观看 | 在线亚洲播放 | 人人澡人摸人人爽歪歪 | 午夜亚洲国产精品福利 | 欧美系列在线 |