偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

C# EmployeePlug類概述

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

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

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

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

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

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

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

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

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

【編輯推薦】

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

2009-09-04 13:31:33

C#抽象類

2009-08-17 17:42:57

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

2009-08-20 16:28:45

C#匿名方法

2009-08-24 18:09:13

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

2009-08-17 09:57:00

C# Windows

2009-08-25 10:08:39

C# MyData對象

2009-08-19 11:09:00

C# Cast<T>

2009-08-25 16:49:44

C#使用if語句

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-08-18 17:29:02

C#使用指針

2009-08-21 17:11:41

C#調(diào)用Active組

2009-08-12 11:33:23

C#實現(xiàn)文件下載

2009-08-17 10:54:53

C#執(zhí)行ping命令

2009-08-03 16:39:56

C# Assembly

2009-08-19 15:30:40

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

2009-09-02 16:02:52

C#引用托管對象
點贊
收藏

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