xml文件为:SharpDevelopCore.addin(搜索一下,这个文件是唯一的)
相关类在:Core/AddIns
在逻辑上,SharpDevelop有一棵插件树AddInTree,树上有很多节点AddInTreeNode,对外表现为SharpDevelopCore.addin这个xml文件。
每个AddIn插件由Codon和Conditional组成。如下图:





















每个Extension节点就是一个Codon对象,在程序中抽象为ICodon:


ICodon的属性就是Xml中的实体映射,AbstractCodon抽象类提供了属性的实现(BulidItem()方法在最底层实现)
BulidItem()方法很重要,签名为:
public override object BuildItem(object owner, ArrayList subItems, ConditionFailedAction action)
Codon的生成由CodonBuilder和CodonFactory协作完成。