zoukankan      html  css  js  c++  java
  • AddIn插件体系

    这套体系是由xml与相关类共同作用形成的。
    xml文件为:SharpDevelopCore.addin(搜索一下,这个文件是唯一的)
    相关类在:Core/AddIns

    在逻辑上,SharpDevelop有一棵插件树AddInTree,树上有很多节点AddInTreeNode,对外表现为SharpDevelopCore.addin这个xml文件。


    每个AddIn插件由Codon和Conditional组成。如下图:
    <AddIn name        = "SharpDevelop Core"
           author      
    = "Mike"
           copyright   
    = "GPL"
           url         
    = "http://www.icsharpcode.net"
           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协作完成。



  • 相关阅读:
    [GSEAPY] 在Python里进行基因集富集分析
    scRNAseq R包公共单细胞数据获取
    pybedtools:在Python中使用BEDTools
    pybedtools 提取序列
    将博客搬至CSDN
    【转】SELECT INTO 和 INSERT INTO SELECT 两种表复制语句
    sql长日期数据以短日期格式显示【转】
    [转]YouTube架构学习体会
    [转]让Nginx 支持 ASP ASP.NET配置方法
    [转]LINQ查询总结
  • 原文地址:https://www.cnblogs.com/Jax/p/829849.html
Copyright © 2011-2022 走看看