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 ... 
随机推荐
- 在中心交换机前加入多wan口路由,华为中心交换机的学习
			1.前期经过学习,好多笔记不记得了.要慢慢实践,实战中学习一遍, 2.真实情况看图 3.我们没有接路由器的时候,连接cosle口入中心交换机.telnet上去. 命令行:sys_view undo i ... 
- 搭建Android工程的步骤及其第一个安卓程序
			1.安卓系统架构 1>底层是Linux系统 2>函数库层 由C或C++写的 3>Application frameWork应用的框架层 4>顶层是应用层 2.JVM与DVM介绍 ... 
- 关于HTTP的几种
			301.404.200.304等HTTP状态,代表什么意思? 如果某项请求发送到您的服务器要求显示您网站上的某个网页(例如,用户通过浏览器访问您的网页或 Googlebot 抓取网页时),服务器将会返 ... 
- 【three.js详解之二】渲染器篇
			[three.js详解之二]渲染器篇 本篇文章将详细讲解three.js中渲染器(renderer)的设置方法. three.js文档中渲染器的分支如下: Renderers CanvasRend ... 
- qt QMetaObject::connectSlotsByName()自动关联失效问题解决
			自己编写qt程序的时候,想使用qt on_objectName_signalName()命名规则自动关联信号和槽,老是发现失效.多方求解,答案事实上很简单就是没有理解objectName的含义. on ... 
- Lua协程
			协作例程 1.同一时刻仅一个例程在运行 2.执行权让渡和恢复[栈] 
- WampServe修改默认网站目录的方法(转)
			1wamp简介 WampServe集成了Apache.MySQL.PHP.phpmyadmin,支持Apache的mod_rewrite,PHP扩展.Apache模块只需要在菜单“开启/关闭”上点点就 ... 
- ANSI C中关于FILE流的一些
			ANSI C只是一个定义,定义了一个借口与标准,具体实现将是不同的. 刚看到I/O的时候就对于Stream非常的迷惑,这是什么玩意.后面才明白,这只是一个抽象出来的概念而已.对于一个Stream,它具 ... 
- JavaScript学习中的挑战
			当人们尝试学习 JavaScript , 或者其他编程技术的时候,常常会遇到同样的挑战: 有些概念容易混淆,特别是当你学习过其他语言的时候.很难找到学习的时间(有时候是动力).一旦当你理解了一些东西的 ... 
- hdu 4348 To the moon
			题意:n个数 m次操作 操作分别为 C l r d: 把区间[l, r] 加 d Q l r : 查询区间[l, r]的和 H l r t: 查询时间t的时候[l, r]的和 B t: 回到时间t 思 ... 
