自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

C# EmployeePlug類概述

開發(fā) 后端
這里介紹C# EmployeePlug類的數(shù)據(jù)在這里用EmployeeData對(duì)象來(lái)存儲(chǔ),那也是一個(gè)類型并且實(shí)現(xiàn)了IPlugData接口。

C#有很多值得學(xué)習(xí)的地方,這里我們主要介紹C# EmployeePlug類,包括介紹主程序框架被設(shè)計(jì)為兩個(gè)程序集等方面。

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

1。這個(gè)類實(shí)現(xiàn)了IPlug接口。由于主程序根本不會(huì)知道插件內(nèi)部的類是如何定義的,這非常重要,主程序需要使用IPlug接口和各個(gè)插件通信。這種設(shè)計(jì)利用了面向?qū)ο蟾拍罾锩娴亩鄳B(tài)性。多態(tài)性允許運(yùn)行時(shí),可以通過(guò)指向基類的引用,來(lái)調(diào)用實(shí)現(xiàn)派生類中的方法。

2。這個(gè)類被兩個(gè)屬性標(biāo)識(shí),這樣主程序可以判斷這個(gè)插件是不是有效的。在C#中,要給一個(gè)類標(biāo)識(shí)一個(gè)屬性,你得在類的定義之前聲明屬性,內(nèi)容附在括號(hào)內(nèi)。

3。簡(jiǎn)明起見,例子只是使用了直接寫入代碼的數(shù)據(jù)。而如果這個(gè)插件是個(gè)正式的產(chǎn)品,那么數(shù)據(jù)總是應(yīng)該放在數(shù)據(jù)庫(kù)中或者文件中,各自所有的數(shù)據(jù)都應(yīng)該僅僅由插件本身來(lái)管理。C# EmployeePlug類的數(shù)據(jù)在這里用EmployeeData對(duì)象來(lái)存儲(chǔ),那也是一個(gè)類型并且實(shí)現(xiàn)了IPlugData接口。IPlugData接口在IPlugData.cs中定義,它提供了最基礎(chǔ)的數(shù)據(jù)交換功能,用于主程序和插件之間的通訊。所有支持IPlugData接口的對(duì)象在下層數(shù)據(jù)變化的時(shí)候?qū)⑻峁┮粋€(gè)通知。這個(gè)通知實(shí)際上就是DataChanged事件的發(fā)生。

4。當(dāng)主程序需要顯示某個(gè)插件所含數(shù)據(jù)列表的時(shí)候,它會(huì)調(diào)用GetData方法。這個(gè)方法返回IPlugData對(duì)象的一個(gè)數(shù)組。這樣主程序就可以對(duì)數(shù)組中的每個(gè)對(duì)象使用ToString方法得到數(shù)據(jù)以建立樹的各個(gè)節(jié)點(diǎn)。ToString方法是EmployeeData類的一個(gè)重載,用于顯示雇員的名字。

5。IPlug接口也定義了Save和Print方法。定義這兩個(gè)方法的目的在于當(dāng)有需要打印或者保存數(shù)據(jù)的時(shí)候,要通知一個(gè)插件。EmployeePlug 類就是用于實(shí)現(xiàn)打印和保存數(shù)據(jù)的功能的。在使用Save方法的時(shí)候,需要保存數(shù)據(jù)的位置將會(huì)在方法調(diào)用的時(shí)候提供。這里假設(shè)主程序會(huì)向用戶查詢路徑等信息。路徑信息的查詢是主程序提供給各個(gè)插件的服務(wù)。對(duì)于Print方法,主程序?qū)堰x項(xiàng)和內(nèi)容傳遞到
System。Drawing。Printing。PrintDocument類的實(shí)例。這兩種情況下,和用戶的交互操作都是一致的由主程序提供的。

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

【編輯推薦】

  1. C#泛型支持簡(jiǎn)單描述
  2. C#實(shí)現(xiàn)泛型類簡(jiǎn)單分析
  3. C# Singleton設(shè)計(jì)模式淺談
  4. C#對(duì)接口成員訪問(wèn)分析
  5. C#實(shí)現(xiàn)插件構(gòu)架淺析
責(zé)任編輯:佚名 來(lái)源: 博客園
相關(guān)推薦

2009-09-04 13:31:33

C#抽象類

2009-08-17 17:42:57

C#數(shù)據(jù)庫(kù)操作類

2009-08-25 10:08:39

C# MyData對(duì)象

2009-08-19 11:09:00

C# Cast<T>

2009-08-24 18:09:13

C#構(gòu)造函數(shù)

2009-08-20 16:28:45

C#匿名方法

2009-08-25 16:49:44

C#使用if語(yǔ)句

2009-08-17 09:57:00

C# Windows

2009-08-18 17:29:02

C#使用指針

2009-08-18 09:26:07

C#線程功能

2009-08-13 15:18:23

C#文件上傳

2009-08-31 09:44:23

C# Employee

2009-07-31 14:08:54

C# 匿名函數(shù)

2009-09-03 11:15:38

C#設(shè)置Coopera

2009-09-02 16:02:52

C#引用托管對(duì)象

2009-08-19 15:30:40

C#復(fù)合控件構(gòu)建

2009-08-21 17:11:41

C#調(diào)用Active組

2009-08-17 10:54:53

C#執(zhí)行ping命令

2009-08-14 16:54:19

C# Hello Wo

2009-08-12 11:33:23

C#實(shí)現(xiàn)文件下載
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)