成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

C# EmployeePlug類概述

開發 后端
這里介紹C# EmployeePlug類的數據在這里用EmployeeData對象來存儲,那也是一個類型并且實現了IPlugData接口。

C#有很多值得學習的地方,這里我們主要介紹C# EmployeePlug類,包括介紹主程序框架被設計為兩個程序集等方面。

插件在EmployeePlug.cs和CustomerPlug.cs中定義。列表三展示了C# EmployeePlug類的部分定義。下面是一些關鍵點。

1。這個類實現了IPlug接口。由于主程序根本不會知道插件內部的類是如何定義的,這非常重要,主程序需要使用IPlug接口和各個插件通信。這種設計利用了面向對象概念里面的多態性。多態性允許運行時,可以通過指向基類的引用,來調用實現派生類中的方法。

2。這個類被兩個屬性標識,這樣主程序可以判斷這個插件是不是有效的。在C#中,要給一個類標識一個屬性,你得在類的定義之前聲明屬性,內容附在括號內。

3。簡明起見,例子只是使用了直接寫入代碼的數據。而如果這個插件是個正式的產品,那么數據總是應該放在數據庫中或者文件中,各自所有的數據都應該僅僅由插件本身來管理。C# EmployeePlug類的數據在這里用EmployeeData對象來存儲,那也是一個類型并且實現了IPlugData接口。IPlugData接口在IPlugData.cs中定義,它提供了最基礎的數據交換功能,用于主程序和插件之間的通訊。所有支持IPlugData接口的對象在下層數據變化的時候將提供一個通知。這個通知實際上就是DataChanged事件的發生。

4。當主程序需要顯示某個插件所含數據列表的時候,它會調用GetData方法。這個方法返回IPlugData對象的一個數組。這樣主程序就可以對數組中的每個對象使用ToString方法得到數據以建立樹的各個節點。ToString方法是EmployeeData類的一個重載,用于顯示雇員的名字。

5。IPlug接口也定義了Save和Print方法。定義這兩個方法的目的在于當有需要打印或者保存數據的時候,要通知一個插件。EmployeePlug 類就是用于實現打印和保存數據的功能的。在使用Save方法的時候,需要保存數據的位置將會在方法調用的時候提供。這里假設主程序會向用戶查詢路徑等信息。路徑信息的查詢是主程序提供給各個插件的服務。對于Print方法,主程序將把選項和內容傳遞到
System。Drawing。Printing。PrintDocument類的實例。這兩種情況下,和用戶的交互操作都是一致的由主程序提供的。

主程序框架被設計為兩個程序集。***個程序集是Host.exe,它提供了主程序的Windows窗體界面。第二個程序集是HostCommon.dll,它提供了主程序和插件之間進行通信所需的所有類型定義。比如,IPlug接口就是在 HostCommon.dll里面配置的,這樣它可以被主程序和插件等價的訪問。這兩個程序集在一個文件夾內,同樣的,附加的作為插件的程序集也需要被配置在一起。那些程序集被配置在plugs文件夾內(主程序目錄的一個子文件夾)。C# EmployeePlug類在Employee.plug 程序集中定義,而CustomerPlug類在Customer.plug程序集中定義。這個例子指定插件文件以.plug為擴展名。事實上這些插件就是個普通的.NET類庫文件,只是通常庫文件使用.dll擴展名,這里用.plug罷了。特殊的擴展名對于程序運行是完全沒有影響的,但是它可以讓用戶更明確的知道這是個插件文件。

【編輯推薦】

  1. C#泛型支持簡單描述
  2. C#實現泛型類簡單分析
  3. C# Singleton設計模式淺談
  4. C#對接口成員訪問分析
  5. C#實現插件構架淺析
責任編輯:佚名 來源: 博客園
相關推薦

2009-09-04 13:31:33

C#抽象類

2009-08-17 17:42:57

C#數據庫操作類

2009-08-31 09:44:23

C# Employee

2009-09-03 11:15:38

C#設置Coopera

2009-07-31 14:08:54

C# 匿名函數

2009-08-18 17:29:02

C#使用指針

2009-08-13 15:18:23

C#文件上傳

2009-08-18 09:26:07

C#線程功能

2009-08-17 09:57:00

C# Windows

2009-08-20 16:28:45

C#匿名方法

2009-08-25 16:49:44

C#使用if語句

2009-08-25 10:08:39

C# MyData對象

2009-08-24 18:09:13

C#構造函數

2009-08-19 11:09:00

C# Cast<T>

2009-08-07 16:43:44

C#調用Windows

2009-08-10 13:40:46

創建C# COM對象

2009-08-10 17:12:54

C#編譯器

2009-09-02 09:13:16

C#文法產生式

2009-09-04 14:41:09

C#同步線程

2009-07-31 15:37:45

C#靜態構造函數
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: а天堂中文最新一区二区三区 | 亚洲精品久久久久久久久久久久久 | 亚洲天堂一区 | 欧区一欧区二欧区三免费 | 粉嫩一区二区三区国产精品 | 久久国产三级 | 久久成人精品视频 | 日韩波多野结衣 | 免费一级网站 | 久久精品亚洲 | 亚洲三区在线 | 久久久久久天堂 | 日韩国产三区 | 午夜欧美一区二区三区在线播放 | 亚洲综合色婷婷 | 高清欧美性猛交 | 欧美精品v国产精品v日韩精品 | 91麻豆产精品久久久久久 | 成人免费观看男女羞羞视频 | 亚洲精品一二三区 | 91久久精品 | 欧美精品在欧美一区二区少妇 | 午夜爱爱毛片xxxx视频免费看 | 亚洲精品福利在线 | 国产在线区 | 国产a区| 日韩av福利在线观看 | 亚洲精品一区二区三区免 | 日韩精品视频一区二区三区 | av片免费 | 久久久久久国产精品免费免费狐狸 | 91九色视频在线 | 亚洲品质自拍视频 | 国产精品免费福利 | 国产一区二区三区免费观看在线 | 国产偷自视频区视频 | 国产一区二区在线免费视频 | 欧美亚洲视频在线观看 | 色爱综合网| 97国产精品 | 青娱乐av |