新聞中心
C#語(yǔ)言有很多值得學(xué)習(xí)的地方,這里我們主要介紹C#自定義數(shù)據(jù),包括介紹每一個(gè)由DBObject派生的對(duì)象都擁有存儲(chǔ)C#自定義數(shù)據(jù)的擴(kuò)展字典等方面。

創(chuàng)新互聯(lián)長(zhǎng)期為數(shù)千家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開(kāi)放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為永靖企業(yè)提供專業(yè)的做網(wǎng)站、網(wǎng)站設(shè)計(jì),永靖網(wǎng)站改版等技術(shù)服務(wù)。擁有十載豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開(kāi)發(fā)。
我們將創(chuàng)建一個(gè)新的字典對(duì)象,它用來(lái)表示我們雇員就職的 ‘Acme 公司‘(呵呵,當(dāng)然是虛構(gòu)的一家公司)的部門(mén)。這個(gè)“部門(mén)”字典對(duì)象將包含一個(gè)表示部門(mén)經(jīng)理的記錄。我們還會(huì)加入代碼到雇員創(chuàng)建過(guò)程,這個(gè)過(guò)程會(huì)加入一個(gè)索引到雇員工作的部門(mén)。
我們要說(shuō)明的是如何在DWG文件中創(chuàng)建C#自定義數(shù)據(jù),包括“每個(gè)圖形”的C#自定義數(shù)據(jù)和“每個(gè)實(shí)體”的C#自定義數(shù)據(jù)?!懊總€(gè)圖形”的C#自定義數(shù)據(jù)是指只在整個(gè)圖形中加入一次的數(shù)據(jù),它表示對(duì)象可以引用的單一類型或特性?!懊總€(gè)實(shí)體”的C#自定義數(shù)據(jù)是指是為特定的對(duì)象或數(shù)據(jù)庫(kù)中的實(shí)體加入的數(shù)據(jù)。
在下面的示例中,我們將加入“每個(gè)圖形”的C#自定義數(shù)據(jù)到命名對(duì)象字典(簡(jiǎn)稱NOD)。NOD存在于每一個(gè)DWG文件中。“每個(gè)實(shí)體”的C#自定義數(shù)據(jù)加入到一個(gè)名為“擴(kuò)展字典”的字典(可選)中,它表示每一個(gè)雇員。每一個(gè)由DBObject派生的對(duì)象都擁有存儲(chǔ)C#自定義數(shù)據(jù)的擴(kuò)展字典。而在我們的示例中將包含這種C#自定義數(shù)據(jù)如名字、薪水和部門(mén)。
因此這一章的重點(diǎn)是字典對(duì)象和擴(kuò)展記錄(XRecord),它們是我們用來(lái)表示C#自定義數(shù)據(jù)的容器。
首先讓我們來(lái)創(chuàng)建表示公司的條目。在本章的前幾個(gè)步驟中,我們將創(chuàng)建如下所示的部門(mén)層次結(jié)構(gòu):
◆NOD-命名對(duì)象字典
◆ACME_DIVISION-自定義公司字典
◆銷售(Sales) -部門(mén)字典
◆部門(mén)經(jīng)理-部門(mén)條目
請(qǐng)打開(kāi)Lab4文件夾下的Lab4工程,或接著Lab3的代碼。
< !--[if !supportLists]-->1) < !--[endif]-->我們首先要做的是定義一個(gè)新的函數(shù),它用來(lái)在命名對(duì)象字典(NOD)中創(chuàng)建公司字典對(duì)象。為這個(gè)函數(shù)取名為 CreateDivision(),,并使用命令屬性來(lái)定義CREATEDIVISION命令。
下面是這個(gè)函數(shù)的代碼,它的形式非常簡(jiǎn)單,只是用來(lái)在NOD中創(chuàng)建一個(gè)ACME_DIVISION(用來(lái)表示公司)
- [CommandMethod("CreateDivision")]
- public void CreateDivision()
- {
- Database db = HostApplicationServices.WorkingDatabase;
- Transaction trans = db.TransactionManager.StartTransaction();
- try
- {
- //首先,獲取NOD……
- DBDictionary NOD = (DBDictionary)trans.GetObject
(db.NamedObjectsDictionaryId, OpenMode.ForWrite);- //定義一個(gè)公司級(jí)別的字典
- DBDictionary acmeDict;
- try
- {
- //如果ACME_DIVISION不存在,則轉(zhuǎn)到catch塊,這里什么也不做
- acmeDict = (DBDictionary)trans.GetObject(NOD.GetAt("ACME_DIVISION"), OpenMode.ForRead);
- }
- catch
- {
- //如果ACME_DIVISION不存在,則創(chuàng)建它并把它加入到NOD中……
- acmeDict = new DBDictionary();
- NOD.SetAt("ACME_DIVISION", acmeDict);
- trans.AddNewlyCreatedDBObject(acmeDict, true);
- }
- trans.Commit();
- }
- finally
- {
- trans.Dispose();
- }
- }
標(biāo)題名稱:C#自定義數(shù)據(jù)詳細(xì)介紹
分享URL:http://fisionsoft.com.cn/article/djhpogs.html


咨詢
建站咨詢
