Mono addin 学习笔记 5 TypeExtensionPoint
1. Attribute声明方式
定义扩展点:
[TypeExtensionPoint]
public interface ICommand
{
        void Run();
}
定义扩展:
[Extension]
public class TraceCommand : ICommand
{
public void Run()
{
Console.WriteLine("Trace output");
}
}
使用方式为:
foreach (TypeExtensionNode node in AddinManager.GetExtensionNodes(typeof(ICommand)))
{
        ICommand cmd = node.CreateInstance() as ICommand;
        cmd.Run();
}
2.xml声明方式
定义接口:
public interface ICommand
{
        void Run();
}
实现该接口的类:
public class TraceCommand : ICommand
{
public void Run()
{
Console.WriteLine("Trace output");
}
}
xml声明扩展点
<!--没有显示实现了扩展节点(ExtensionNode)的配置方法 设置对应节点的objectType属性-->
  <ExtensionPoint path="/DataExtensionPointMenifest/ICommand"  name="ICommand">
       <ExtensionNode name="Command" objectType="ICommand"/> 
  </ExtensionPoint>
注:扩展节点也可以定义成这样:
<ExtensionNode name="Command" />
即不指定objectType。
每个扩展点都必须定义包含扩展节点元素
定义扩展:
<Extension path = "/DataExtensionPointMenifest/ICommand">
    <Command  type="TraceCommand" />
<Command  class="DataExtensionAddin.ConsoleCommand" />
  </Extension>
Mono addin 学习笔记 5 TypeExtensionPoint的更多相关文章
- Mono addin 学习笔记 3
		
典型的基于Mono addin插件框架的应用程序有以下一个部分组成: 1. 主应用程序:提供了一系列的扩展点(Extension Point)供其他应用进行扩展: 2. 扩展插件: 其部署结构图如下为 ...
 - Mono addin 学习笔记 1
		
Mono Addin是一个开源的插件框架,其主要支持的特性如下: The main features of Mono.Addins are: Supports descriptions of add- ...
 - Mono addin 学习笔记 4  再论数据扩展点(Data only extension point)
		
1. Attribute声明方式 定义扩展属性 [AttributeUsage(AttributeTargets.Assembly, AllowMultiple= true)] public clas ...
 - Mono addin 学习笔记 2
		
下面分析用xml描述文件的方式来进行插件定义 定义扩展点如下: public interface ISnippetProvider { string GetText (string shortcut) ...
 - NGUI 学习笔记实战之二——商城数据绑定(Ndata)
		
上次笔记实现了游戏商城的UI界面,没有实现动态数据绑定,所以是远远不够的.今天采用NData来做一个商城. 如果你之前没看过,可以参考上一篇博客 NGUI 学习笔记实战——制作商城UI界面 ht ...
 - MVC_学习笔记_2_Authorize
		
MVC5_学习笔记_2_Authorize/* GitHub stylesheet for MarkdownPad (http://markdownpad.com) *//* Author: Nico ...
 - C#.NET学习笔记1---C#.NET简介
		
C#.NET学习笔记1---C#.NET简介 技术qq交流群:JavaDream:251572072 教程下载,在线交流:创梦IT社区:www.credream.com -------------- ...
 - VSTO学习笔记(十四)Excel数据透视表与PowerPivot
		
原文:VSTO学习笔记(十四)Excel数据透视表与PowerPivot 近期公司内部在做一种通用查询报表,方便人力资源分析.统计数据.由于之前公司系统中有一个类似的查询使用Excel数据透视表完成的 ...
 - VSTO 学习笔记(十二)自定义公式与Ribbon
		
原文:VSTO 学习笔记(十二)自定义公式与Ribbon 这几天工作中在开发一个Excel插件,包含自定义公式,根据条件从数据库中查询结果.这次我们来做一个简单的测试,达到类似的目的. 即在Excel ...
 
随机推荐
- 【58测试】【贪心】【离散】【搜索】【LIS】【dp】
			
第一题 大天使之剑 大意: 有n个怪,每个怪的ph 为 h[i],有三种攻击方式,普通攻击:一次打一个怪一滴血:重击(消耗1魔法值):一次打一个怪两滴血:群体攻击(消耗1魔法值):一次打所有怪一滴血. ...
 - Android Camera进行拍照
			
Android应用提供了Camera来控制拍照,使用Camera进行拍照的步骤: 1.调用Camera的open()方法打开相机. 2.调用Camera的getParameters()方法获取拍照参数 ...
 - transform:rotate在手机上显示有锯齿的解决方案
			
transform:rotate 属于简单好用的效果,但在手机上显示时,会有比较明显锯齿. 解决方案也很简单, 利用外层容器的overflow:hidden 加上图片margin:-1px 就可以解决 ...
 - php大力力 [038节]  全栈工程师的含义
			
管理时间 http://www.nowamagic.net/librarys/eight/posts/2753 从知乎上看到“全栈开发者”讨论之后的自黑 什么是全栈开发者 https://beeclo ...
 - 在 Sublime Text 2 中使用 SFTP 插件快速编辑远程服务器文件
			
在 Sublime Text 2 中使用 SFTP 插件快速编辑远程服务器文件 开源程序 浏览:29555 2013年05月02日 文章目录[隐藏] 常见的工作流程 SFTP 安装和使用方法 第一步: ...
 - Caffe 源碼閱讀(一) Blob.hpp
			
Blob 四維度(N K H W) N : SGD 一次 mini-batch 個數 K : 如果是圖片表示圖片通道數 如果是中間結果 則理解爲 feature map 個數 H.W : 如果是圖片理 ...
 - Win10/UWP新特性系列-GetPublisherCacheFolder
			
微软Windows Runtime App拥有很强的安全模型来防止不同App之间的数据获取和共享,也就是我们所说的"沙盒机制",每个App都运行在Windows沙盒中,App之间的 ...
 - 用python+selenium将腾讯首页今日话题的内容自动发表到自己cnblog里
			
目的:使用pyhton下的unittest单元测试框架并结合selenium的webdriver来实现将腾讯首页的今日话题下的内容自动发表达到自己的cnblog里. 思路:创建QQDailyTopic ...
 - Selenium 中 cssSelector定位
			
一.为什么使用cssSelector定位元素? 目前针对一些常规定位方式有:By.id.By.name.By.LinkTest(针对<a>标签).By.ClassName 针对不太好定位的 ...
 - Java问题总结
			
1.如何查看使用java的版本 cmd-->java -version 2.如何下载jdk,sdk Java.JDK(工具包)的安装_百度经验http://jingyan.baidu.com/a ...