AddIn外掛程式體系

2022-01-31 16:43:41 字數 1478 閱讀 1441

這套體系是由xml與相關類共同作用形成的。

xml檔案為:sharpdevelopcore.addin(搜尋一下,這個檔案是唯一的)

相關類在:core/addins

在邏輯上,sharpdevelop有一棵外掛程式樹addintree,樹上有很多節點addintreenode,對外表現為sharpdevelopcore.addin這個xml檔案。

每個addin外掛程式由codon和conditional組成。如下圖:

<

addin name        ="

sharpdevelop core

"author      ="

mike"=

"gpl

"url         ="

"description ="

ncvs core module

"version     ="

1.0.0

">

<

runtime

>

<

import assembly="

sharpdevelop.base.dll

"/>

<

import assembly="

csharpparser.dll

"/>

runtime

>

<

extension path ="

/sharpdevelop/workbench/ambiences

">

<

class id    ="

net"

class="

icsharpcode.sharpdevelop.services.netambience

"/>

<

class id    ="

csharp

"class="

icsharpcode.sharpdevelop.services.csharpambience

"/>

<

class id    ="

vb.net

"class="

icsharpcode.sharpdevelop.services.vbambience

"/>

extension

>

addin

>

每個extension節點就是乙個codon物件,在程式中抽象為icodon:

icodon的屬性就是xml中的實體對映,abstractcodon抽象類提供了屬性的實現(buliditem()方法在最底層實現)

buliditem()方法很重要,簽名為:

public override object builditem(object owner, arraylist subitems, conditionfailedaction action)

codon的生成由codonbuilder和codonfactory協作完成。

Revit外掛程式載入,addin檔案的設定

問題描述 revit二次開發使用addin載入時,出現如下錯誤。外部工具 不存在於附加模組對應的 商id節點 無法初始化附加模組 helloworld.addin 因為附加模組登錄檔中缺少所需的 商id節點值。可根據 商id節點識別附加模組應用程式的 商。如要revit執行附加模組,必須註冊清單 h...

解析phpwind的外掛程式體系

看phpwind的官方 發現有個很重要版塊為 phpwind 外掛程式開發 第一感覺是phpwind有個很完善的外掛程式體系,吸引開發者來基於外掛程式體系進行二次開發。於是乎我饒有興趣地解析一下phpwind的外掛程式體系的實現。我先說說在我看來外掛程式體現比較重要的兩個特徵 對於第乙個特徵phpw...

解析phpwind的外掛程式體系

看phpwind的官方 發現有個很重要版塊為 phpwind 外掛程式開發 第一感覺是phpwind有個很完善的外掛程式體系,吸引開發者來基於外掛程式體系進行二次開發。於是乎我饒有興趣地解析一下phpwind的外掛程式體系的實現。我先說說在我看來外掛程式體現比較重要的兩個特徵 對於第乙個特徵phpw...